Submission #1447732
Source Code Expand
#include <bits/stdc++.h> using namespace std ; int n ; const int MAXN = 100010 ; int fa[MAXN], fb[MAXN] ; vector<int> ga[MAXN], gb[MAXN] ; int x[MAXN], y[MAXN] ; struct Edge { int l, r, bel, typ, t2, nxt ; } e[MAXN << 2] ; bool vis[MAXN << 2] ; int ecnt = 1, hed[MAXN] ; int due[MAXN] ; void addedge(int l, int r, int bel, int typ, int t2) { ++ ecnt, e[ecnt].l = l, e[ecnt].r = r, e[ecnt].nxt = hed[l], e[ecnt].bel = bel, e[ecnt].typ = typ, e[ecnt].t2 = t2, hed[l] = ecnt; due[l] ++ ; } void adde(int l, int r, int bel, int typ, int t2) { addedge(l, r, bel, typ, t2) ; addedge(r, l, bel, typ ^ 1, t2) ; } void Build() { for (int i = 1; i <= n; i ++) { adde(i, fa[i] == -1 ? n + 1 : fa[i], i, 0, 0) ; adde(i, fb[i] == -1 ? n + 1 : fb[i], i, 1, 1) ; } } void Dfs(int X) { for (int i = hed[X]; i; i = hed[X]) { hed[X] = e[i].nxt ; if (vis[i ^ 1]) continue ; vis[i] = 1; Dfs(e[i].r) ; if (e[i].t2 == 0) { x[e[i].bel] = e[i].typ ? 1 : -1 ; } else y[e[i].bel] = e[i].typ ? 1 : -1 ; if (!hed[X]) break ; } } int main() { scanf("%d", &n) ; for (int i = 1; i <= n; i ++) { scanf("%d", &fa[i]) ; if (fa[i] != -1) ga[fa[i]].push_back(i) ; } for (int i = 1; i <= n; i ++) { scanf("%d", &fb[i]) ; if (fb[i] != -1) gb[fb[i]].push_back(i) ; } Build() ; for (int i = 1; i <= n; i ++) { if (due[i] & 1) { puts("IMPOSSIBLE") ; return 0 ; } } puts("POSSIBLE"); Dfs(n + 1) ; for (int i = 1; i <= n; i ++) { int tmp = x[i] ; for (int j = 0; j < ga[i].size(); j ++) { tmp -= x[ga[i][j]] ; } printf("%d%c", tmp, i == n ? 10 : ' '); } }
Submission Info
Submission Time | |
---|---|
Task | F - Two Trees |
User | yjqqqaq |
Language | C++14 (GCC 5.4.1) |
Score | 1700 |
Code Size | 1822 Byte |
Status | AC |
Exec Time | 75 ms |
Memory | 26496 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:59:19: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &n) ; ^ ./Main.cpp:61:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &fa[i]) ; ^ ./Main.cpp:65:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &fb[i]) ; ^
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 | 3 ms | 6400 KB |
sample_02.txt | AC | 3 ms | 6400 KB |
sample_03.txt | AC | 3 ms | 6400 KB |
subtask_1_01.txt | AC | 3 ms | 6400 KB |
subtask_1_02.txt | AC | 3 ms | 6400 KB |
subtask_1_03.txt | AC | 26 ms | 16384 KB |
subtask_1_04.txt | AC | 50 ms | 21120 KB |
subtask_1_05.txt | AC | 39 ms | 19840 KB |
subtask_1_06.txt | AC | 17 ms | 11904 KB |
subtask_1_07.txt | AC | 41 ms | 17152 KB |
subtask_1_08.txt | AC | 16 ms | 12540 KB |
subtask_1_09.txt | AC | 24 ms | 15744 KB |
subtask_1_10.txt | AC | 42 ms | 20096 KB |
subtask_1_11.txt | AC | 11 ms | 10368 KB |
subtask_1_12.txt | AC | 60 ms | 24576 KB |
subtask_1_13.txt | AC | 29 ms | 16768 KB |
subtask_1_14.txt | AC | 10 ms | 10624 KB |
subtask_1_15.txt | AC | 18 ms | 10880 KB |
subtask_1_16.txt | AC | 23 ms | 17144 KB |
subtask_1_17.txt | AC | 18 ms | 13184 KB |
subtask_1_18.txt | AC | 59 ms | 24960 KB |
subtask_1_19.txt | AC | 41 ms | 20352 KB |
subtask_1_20.txt | AC | 68 ms | 26112 KB |
subtask_1_21.txt | AC | 42 ms | 20864 KB |
subtask_1_22.txt | AC | 42 ms | 22912 KB |
subtask_1_23.txt | AC | 69 ms | 26240 KB |
subtask_1_24.txt | AC | 61 ms | 20992 KB |
subtask_1_25.txt | AC | 27 ms | 17528 KB |
subtask_1_26.txt | AC | 36 ms | 19452 KB |
subtask_1_27.txt | AC | 64 ms | 25856 KB |
subtask_1_28.txt | AC | 42 ms | 20352 KB |
subtask_1_29.txt | AC | 72 ms | 26112 KB |
subtask_1_30.txt | AC | 42 ms | 20736 KB |
subtask_1_31.txt | AC | 42 ms | 22912 KB |
subtask_1_32.txt | AC | 69 ms | 26112 KB |
subtask_1_33.txt | AC | 61 ms | 20992 KB |
subtask_1_34.txt | AC | 27 ms | 17528 KB |
subtask_1_35.txt | AC | 36 ms | 19452 KB |
subtask_1_36.txt | AC | 65 ms | 25856 KB |
subtask_1_37.txt | AC | 68 ms | 26112 KB |
subtask_1_38.txt | AC | 68 ms | 26112 KB |
subtask_1_39.txt | AC | 75 ms | 26112 KB |
subtask_1_40.txt | AC | 69 ms | 26112 KB |
subtask_1_41.txt | AC | 70 ms | 26368 KB |
subtask_1_42.txt | AC | 43 ms | 24440 KB |
subtask_1_43.txt | AC | 64 ms | 25856 KB |
subtask_1_44.txt | AC | 69 ms | 26112 KB |
subtask_1_45.txt | AC | 69 ms | 26112 KB |
subtask_1_46.txt | AC | 69 ms | 26112 KB |
subtask_1_47.txt | AC | 68 ms | 26112 KB |
subtask_1_48.txt | AC | 74 ms | 26368 KB |
subtask_1_49.txt | AC | 42 ms | 24440 KB |
subtask_1_50.txt | AC | 67 ms | 25856 KB |
subtask_1_51.txt | AC | 69 ms | 26112 KB |
subtask_1_52.txt | AC | 69 ms | 26112 KB |
subtask_1_53.txt | AC | 69 ms | 26112 KB |
subtask_1_54.txt | AC | 69 ms | 26112 KB |
subtask_1_55.txt | AC | 71 ms | 26240 KB |
subtask_1_56.txt | AC | 43 ms | 24440 KB |
subtask_1_57.txt | AC | 66 ms | 25856 KB |
subtask_1_58.txt | AC | 71 ms | 26112 KB |
subtask_1_59.txt | AC | 69 ms | 26112 KB |
subtask_1_60.txt | AC | 69 ms | 26112 KB |
subtask_1_61.txt | AC | 69 ms | 26112 KB |
subtask_1_62.txt | AC | 70 ms | 26496 KB |
subtask_1_63.txt | AC | 43 ms | 24440 KB |
subtask_1_64.txt | AC | 64 ms | 25856 KB |