| 5402 | 2023-05-12 15:58:58 | szil | Széfnyitás | cpp14 | Elfogadva 100/100 | 8ms | 6420 KiB |
#include <bits/stdc++.h>
using ll = long long;
using namespace std;
const ll INF = 1e18;
const int MAXN = 151;
int s[MAXN][2], s2[50001][2], a[MAXN], b[50001];
bool bits[MAXN];
int timer;
struct Node {
Node *p[2] = {nullptr, nullptr};
int u = -1, t;
};
Node *root;
void add(vector<int> &v, int u) {
Node *ptr = root;
for (int i : v) {
if (ptr->p[i] == nullptr) {
ptr->p[i] = new Node();
ptr->p[i]->t = timer++;
}
ptr = ptr->p[i];
}
ptr->u = u;
}
void upd(Node *v, int d = 0) {
b[v->t] = bits[d];
if (v->u != -1) {
s2[v->t][0] = s2[v->t][1] = v->u;
return;
}
if (v->p[0] != nullptr) {
s2[v->t][0] = v->p[0]->t;
upd(v->p[0], d + 1);
}
if (v->p[1] != nullptr) {
s2[v->t][1] = v->p[1]->t;
upd(v->p[1], d + 1);
}
}
int main()
{
srand(time(0));
ios::sync_with_stdio(0); cin.tie(0);
int n, k; cin >> n;
timer = n + 1;
root = new Node();
root->t = timer++;
for (int i = 1; i <= n; i++) {
int x;
cin >> a[i] >> s[i][0] >> s[i][1];
}
cin >> k;
for (int i = 0; i < n; i++) {
bits[i] = rand() % 2;
}
if (n <= 2) {
b[1] = 0;
b[2] = 1;
for (int i = 1; i <= 2; i++) {
for (int j = 1; j <= 2; j++) {
for (int c = 1; c <= 2; c++) {
for (int d = 1; d <= 2; d++) {
s2[1][0] = i;
s2[1][1] = j;
s2[2][0] = c;
s2[2][1] = d;
bool g = true;
for (int start = 1; start <= n && g; start++) {
int left = k;
int stB = 1;
int st = start;
for (int it = 0; it <= 10; it++) {
int o1 = a[st];
int o2 = b[stB];
if (o1 != o2) {
if (left == 0) {
g = false;
break;
}
left--;
}
st = s[st][o2];
stB = s2[stB][o1];
}
}
if (g) {
cout << "2 1\n";
cout << b[1] << " " << s2[1][0] << " " << s2[1][1] << "\n" << b[2] << " " << s2[2][0] << " " << s2[2][1] << "\n";
exit(0);
}
}
}
}
}
exit(1);
}
for (int i = 1; i <= n; i++) {
vector<int> v;
int u = i;
for (int it = 0; it < n-1; it++) {
v.push_back(a[u]);
u = s[u][bits[it]];
}
add(v, s[u][bits[n-1]]);
}
upd(root);
cout << timer-1 << " " << n+1 << "\n";
for (int i = 1; i <= n; i++) {
cout << a[i] << " " << s[i][0] << " " << s[i][1] << "\n";
}
for (int i = n+1; i < timer; i++) {
if (s2[i][0] == 0) s2[i][0] = s2[i][1];
if (s2[i][1] == 0) s2[i][1] = s2[i][0];
if (s2[i][0] == 0) {
s2[i][0] = s2[i][1] = 1;
}
cout << b[i] << " " << s2[i][0] << " " << s2[i][1] << "\n";
}
return 0;
}| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Elfogadva | 3ms | 1836 KiB | ||||
| 2 | Elfogadva | 3ms | 2028 KiB | ||||
| subtask2 | 16/16 | ||||||
| 3 | Elfogadva | 3ms | 2028 KiB | ||||
| 4 | Elfogadva | 3ms | 2240 KiB | ||||
| 5 | Elfogadva | 3ms | 2448 KiB | ||||
| 6 | Elfogadva | 3ms | 2664 KiB | ||||
| 7 | Elfogadva | 3ms | 2880 KiB | ||||
| 8 | Elfogadva | 3ms | 3092 KiB | ||||
| 9 | Elfogadva | 2ms | 3172 KiB | ||||
| 10 | Elfogadva | 2ms | 3172 KiB | ||||
| 11 | Elfogadva | 3ms | 3384 KiB | ||||
| 12 | Elfogadva | 2ms | 3384 KiB | ||||
| 13 | Elfogadva | 3ms | 3516 KiB | ||||
| 14 | Elfogadva | 3ms | 3596 KiB | ||||
| subtask3 | 24/24 | ||||||
| 15 | Elfogadva | 3ms | 3596 KiB | ||||
| 16 | Elfogadva | 3ms | 3608 KiB | ||||
| 17 | Elfogadva | 3ms | 3884 KiB | ||||
| 18 | Elfogadva | 3ms | 4188 KiB | ||||
| 19 | Elfogadva | 3ms | 4308 KiB | ||||
| 20 | Elfogadva | 3ms | 4392 KiB | ||||
| 21 | Elfogadva | 3ms | 4476 KiB | ||||
| 22 | Elfogadva | 3ms | 4420 KiB | ||||
| 23 | Elfogadva | 3ms | 4412 KiB | ||||
| subtask4 | 23/23 | ||||||
| 24 | Elfogadva | 3ms | 4412 KiB | ||||
| 25 | Elfogadva | 3ms | 4516 KiB | ||||
| 26 | Elfogadva | 3ms | 4600 KiB | ||||
| 27 | Elfogadva | 3ms | 4616 KiB | ||||
| 28 | Elfogadva | 3ms | 4776 KiB | ||||
| 29 | Elfogadva | 3ms | 5056 KiB | ||||
| 30 | Elfogadva | 3ms | 5016 KiB | ||||
| 31 | Elfogadva | 3ms | 5024 KiB | ||||
| 32 | Elfogadva | 3ms | 5020 KiB | ||||
| subtask5 | 37/37 | ||||||
| 33 | Elfogadva | 3ms | 5020 KiB | ||||
| 34 | Elfogadva | 3ms | 2240 KiB | ||||
| 35 | Elfogadva | 3ms | 2448 KiB | ||||
| 36 | Elfogadva | 3ms | 2664 KiB | ||||
| 37 | Elfogadva | 3ms | 2880 KiB | ||||
| 38 | Elfogadva | 3ms | 3092 KiB | ||||
| 39 | Elfogadva | 2ms | 3172 KiB | ||||
| 40 | Elfogadva | 2ms | 3172 KiB | ||||
| 41 | Elfogadva | 3ms | 3384 KiB | ||||
| 42 | Elfogadva | 2ms | 3384 KiB | ||||
| 43 | Elfogadva | 3ms | 3516 KiB | ||||
| 44 | Elfogadva | 3ms | 3596 KiB | ||||
| 45 | Elfogadva | 3ms | 3608 KiB | ||||
| 46 | Elfogadva | 3ms | 3884 KiB | ||||
| 47 | Elfogadva | 3ms | 4188 KiB | ||||
| 48 | Elfogadva | 3ms | 4308 KiB | ||||
| 49 | Elfogadva | 3ms | 4392 KiB | ||||
| 50 | Elfogadva | 3ms | 4476 KiB | ||||
| 51 | Elfogadva | 3ms | 4420 KiB | ||||
| 52 | Elfogadva | 3ms | 4412 KiB | ||||
| 53 | Elfogadva | 3ms | 4516 KiB | ||||
| 54 | Elfogadva | 3ms | 4600 KiB | ||||
| 55 | Elfogadva | 3ms | 4616 KiB | ||||
| 56 | Elfogadva | 3ms | 4776 KiB | ||||
| 57 | Elfogadva | 3ms | 5056 KiB | ||||
| 58 | Elfogadva | 3ms | 5016 KiB | ||||
| 59 | Elfogadva | 3ms | 5024 KiB | ||||
| 60 | Elfogadva | 3ms | 5020 KiB | ||||
| 61 | Elfogadva | 4ms | 5200 KiB | ||||
| 62 | Elfogadva | 6ms | 5932 KiB | ||||
| 63 | Elfogadva | 6ms | 5808 KiB | ||||
| 64 | Elfogadva | 7ms | 6048 KiB | ||||
| 65 | Elfogadva | 7ms | 6232 KiB | ||||
| 66 | Elfogadva | 8ms | 6420 KiB | ||||
| 67 | Elfogadva | 7ms | 6188 KiB | ||||
| 68 | Elfogadva | 7ms | 6244 KiB | ||||
| 69 | Elfogadva | 7ms | 6260 KiB | ||||
| 70 | Elfogadva | 7ms | 6276 KiB | ||||
| 71 | Elfogadva | 7ms | 6268 KiB | ||||
| 72 | Elfogadva | 7ms | 6292 KiB | ||||