Submission #4711264
Source Code Expand
#include <iostream> #include <cstdio> #define IsDigit(x) ((x) >= '0' && (x) <= '9') using namespace std; int n, pos; int last[200001], parity[200001], cross_edge[100001]; struct Edge{ int y, prev, dir; }edge[600000]; int Read(void) { int c, ret(0); bool sign(false); c = getchar(); while (!IsDigit(c) && c != '-') c = getchar(); c == '-' && (sign = true, c = getchar()); do ret = ret * 10 + c - '0'; while ((c = getchar()) && IsDigit(c)); return sign ? -ret : ret; } inline void AddBiEdge(const int x, const int y) { edge[pos].y = y; edge[pos].prev = last[x]; last[x] = pos++; edge[pos].y = x; edge[pos].prev = last[y]; last[y] = pos++; return; } int main() { int ance, root_A, root_B; n = Read(); pos = 2; for (int i = 1; i <= n; ++i) { ance = Read(); if (ance == -1) root_A = i; else { AddBiEdge(i, ance); ++parity[ance]; } } for (int i = 1; i <= n; ++i) { ance = Read(); if (ance == -1) root_B = n + i; else { AddBiEdge(n + i, n + ance); ++parity[n + ance]; } } for (int i = 1; i <= n; ++i) if ((parity[i] & 1) ^ (parity[n + i] & 1)) { printf("IMPOSSIBLE\n"); return 0; } else if (~parity[i] & 1) { AddBiEdge(i, n + i); cross_edge[i] = pos - 2; } AddBiEdge(root_A, root_B); for (int src = 1; src <= n << 1; ++src) { while (last[src] && edge[last[src]].dir) last[src] = edge[last[src]].prev; if (!last[src]) continue; register int curr = src; do { while (edge[last[curr]].dir) last[curr] = edge[last[curr]].prev; edge[last[curr]].dir = 1; edge[last[curr] ^ 1].dir = 2; curr = edge[last[curr]].y; } while (curr != src); } printf("POSSIBLE\n"); for (int i = 1; i <= n; ++i) if (cross_edge[i]) printf(edge[cross_edge[i]].dir == 1 ? "-1 " : "1 "); else printf("0 "); printf("\n"); return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - Two Trees |
User | luogu_bot4 |
Language | C++ (GCC 5.4.1) |
Score | 1700 |
Code Size | 1842 Byte |
Status | AC |
Exec Time | 34 ms |
Memory | 9472 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1700 / 1700 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
All | sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt, subtask_1_42.txt, subtask_1_43.txt, subtask_1_44.txt, subtask_1_45.txt, subtask_1_46.txt, subtask_1_47.txt, subtask_1_48.txt, subtask_1_49.txt, subtask_1_50.txt, subtask_1_51.txt, subtask_1_52.txt, subtask_1_53.txt, subtask_1_54.txt, subtask_1_55.txt, subtask_1_56.txt, subtask_1_57.txt, subtask_1_58.txt, subtask_1_59.txt, subtask_1_60.txt, subtask_1_61.txt, subtask_1_62.txt, subtask_1_63.txt, subtask_1_64.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 2 ms | 2304 KB |
sample_02.txt | AC | 2 ms | 2304 KB |
sample_03.txt | AC | 2 ms | 2304 KB |
subtask_1_01.txt | AC | 2 ms | 2304 KB |
subtask_1_02.txt | AC | 2 ms | 2304 KB |
subtask_1_03.txt | AC | 9 ms | 6912 KB |
subtask_1_04.txt | AC | 24 ms | 9216 KB |
subtask_1_05.txt | AC | 12 ms | 9088 KB |
subtask_1_06.txt | AC | 9 ms | 4096 KB |
subtask_1_07.txt | AC | 20 ms | 7040 KB |
subtask_1_08.txt | AC | 8 ms | 6784 KB |
subtask_1_09.txt | AC | 9 ms | 6912 KB |
subtask_1_10.txt | AC | 21 ms | 9088 KB |
subtask_1_11.txt | AC | 4 ms | 3456 KB |
subtask_1_12.txt | AC | 28 ms | 9344 KB |
subtask_1_13.txt | AC | 10 ms | 6912 KB |
subtask_1_14.txt | AC | 5 ms | 3200 KB |
subtask_1_15.txt | AC | 9 ms | 4352 KB |
subtask_1_16.txt | AC | 11 ms | 9088 KB |
subtask_1_17.txt | AC | 7 ms | 6784 KB |
subtask_1_18.txt | AC | 28 ms | 9344 KB |
subtask_1_19.txt | AC | 13 ms | 9216 KB |
subtask_1_20.txt | AC | 32 ms | 9472 KB |
subtask_1_21.txt | AC | 13 ms | 9216 KB |
subtask_1_22.txt | AC | 14 ms | 9216 KB |
subtask_1_23.txt | AC | 32 ms | 9472 KB |
subtask_1_24.txt | AC | 29 ms | 9472 KB |
subtask_1_25.txt | AC | 13 ms | 9216 KB |
subtask_1_26.txt | AC | 13 ms | 9216 KB |
subtask_1_27.txt | AC | 32 ms | 9472 KB |
subtask_1_28.txt | AC | 13 ms | 9216 KB |
subtask_1_29.txt | AC | 32 ms | 9472 KB |
subtask_1_30.txt | AC | 13 ms | 9216 KB |
subtask_1_31.txt | AC | 13 ms | 9216 KB |
subtask_1_32.txt | AC | 32 ms | 9472 KB |
subtask_1_33.txt | AC | 29 ms | 9472 KB |
subtask_1_34.txt | AC | 13 ms | 9216 KB |
subtask_1_35.txt | AC | 13 ms | 9216 KB |
subtask_1_36.txt | AC | 31 ms | 9472 KB |
subtask_1_37.txt | AC | 32 ms | 9472 KB |
subtask_1_38.txt | AC | 32 ms | 9472 KB |
subtask_1_39.txt | AC | 32 ms | 9472 KB |
subtask_1_40.txt | AC | 32 ms | 9472 KB |
subtask_1_41.txt | AC | 31 ms | 9472 KB |
subtask_1_42.txt | AC | 19 ms | 9472 KB |
subtask_1_43.txt | AC | 31 ms | 9472 KB |
subtask_1_44.txt | AC | 32 ms | 9472 KB |
subtask_1_45.txt | AC | 32 ms | 9472 KB |
subtask_1_46.txt | AC | 32 ms | 9472 KB |
subtask_1_47.txt | AC | 32 ms | 9472 KB |
subtask_1_48.txt | AC | 31 ms | 9472 KB |
subtask_1_49.txt | AC | 19 ms | 9472 KB |
subtask_1_50.txt | AC | 31 ms | 9472 KB |
subtask_1_51.txt | AC | 32 ms | 9472 KB |
subtask_1_52.txt | AC | 32 ms | 9472 KB |
subtask_1_53.txt | AC | 32 ms | 9472 KB |
subtask_1_54.txt | AC | 32 ms | 9472 KB |
subtask_1_55.txt | AC | 32 ms | 9472 KB |
subtask_1_56.txt | AC | 20 ms | 9472 KB |
subtask_1_57.txt | AC | 31 ms | 9472 KB |
subtask_1_58.txt | AC | 32 ms | 9472 KB |
subtask_1_59.txt | AC | 32 ms | 9472 KB |
subtask_1_60.txt | AC | 34 ms | 9472 KB |
subtask_1_61.txt | AC | 32 ms | 9472 KB |
subtask_1_62.txt | AC | 31 ms | 9472 KB |
subtask_1_63.txt | AC | 20 ms | 9472 KB |
subtask_1_64.txt | AC | 31 ms | 9472 KB |