- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
// #include<....>
using namespace std;
#if ( _WIN32 || __WIN32__ || _WIN64 || __WIN64__ )
#define I64 "%I64d"
#else
#define I64 "%Ld"
#endif
#define PB(x) push_back(x)
#define MP(x,y) make_pair(x,y)
#define dbg(x) cerr << #x << " = " << x << endl
#define fori(i,b,e) for(int i = (b); i < (e); i++)
#define forall(p,s) for(typeof((s).begin()) p = (s).begin(); p != (s).end(); p++)
#define memclr(a) memset((a), 0, sizeof(a))
typedef long long int64;
const long long inf = ((long long)1 << 63) - 1;
#define PROBLEM_NAME "a"
#define add(i, j, val, p, ch) \
do { \
par[i][j][val] = p; \
c[i][j][val] = ch; \
was[i][j][val] = true; \
d[i][j][val] = d[i][j][p] + 1; \
a[i][j][sz[i][j]++] = val; \
} while (0)
void bfs(int n) {
int p[10][10][2];
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
p[i][j][0] = min(i,j);
p[i][j][1] = max(i,j);
}
}
static int par[10][10][2 << 16];
static int c[10][10][2 << 16];
static bool was[10][10][2 << 16];
static int a[10][10][2 << 16];
static int d[10][10][2 << 16];
static int sz[10][10];
static int cur[10][10];
//...
}
int main() {
//...
}
Часть шаблона, ну еще кое-какие макросы, т.к. влом было писать нормально. Зато работало. bfs не обыкновенный, если кого это смутит.
т.е. в оригинале написано #define PROBLEM_NAME "d" ? :))
42. алгоритмическая задача, решаемая обходом дерева в ширину (6 букв)
Дано натуральное число n, не превосходящее 2^16.
Найти число, кратное n и состоящее из минимального количества различных цифр. Среди всех таких вывести минимальное.
Для 16 ответ 16. Для 513 ответ - 333..33 (всего 18 троек).
К слову, там не дерево.
а шо под виндами stdint.h нету?
> const long long inf = ((long long)1 << 63) - 1;
и это как бы правильнее было бы ((1ll << 63) - 1) писать.
но и все остальное попахивает...
a[i][j][sz[i][j]++] = val; \ .......
да, мьсе знает толк.....
дальше не читал
Можно было вообще писать тупо код вместо макросов, но тогда пришлось бы наслаждаться слежкой за тремя разными участками и наслаждаться.
В конце концов, можно передавать массивы в качестве параметров, но, блин, писать много, а ситуация была не та, когда бьют за быдлокод.
"Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь?... запостите его..."
Несмотря на все вышесказанное код был. Оставалась самая малость.