Task: | Graph Ordering |
Sender: | egor.lifar |
Submission time: | 2019-03-10 01:06:04 +0200 |
Language: | C++ |
Status: | READY |
Result: | 7 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 7 |
#2 | WRONG ANSWER | 0 |
#3 | WRONG ANSWER | 0 |
#4 | WRONG ANSWER | 0 |
#5 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.12 s | 1, 4, 5 | details |
#2 | ACCEPTED | 0.11 s | 1, 5 | details |
#3 | ACCEPTED | 0.07 s | 1, 5 | details |
#4 | ACCEPTED | 0.08 s | 1, 5 | details |
#5 | ACCEPTED | 0.08 s | 1, 5 | details |
#6 | WRONG ANSWER | 0.03 s | 2, 3, 5 | details |
#7 | TIME LIMIT EXCEEDED | -- | 2, 3, 5 | details |
#8 | WRONG ANSWER | 0.03 s | 2, 3, 4, 5 | details |
#9 | TIME LIMIT EXCEEDED | -- | 2, 3, 4, 5 | details |
#10 | WRONG ANSWER | 0.02 s | 2, 3, 4, 5 | details |
#11 | TIME LIMIT EXCEEDED | -- | 2, 3, 5 | details |
#12 | TIME LIMIT EXCEEDED | -- | 2, 3, 5 | details |
#13 | WRONG ANSWER | 0.61 s | 2, 3, 4, 5 | details |
#14 | TIME LIMIT EXCEEDED | -- | 2, 3, 4, 5 | details |
#15 | WRONG ANSWER | 0.03 s | 2, 3, 4, 5 | details |
#16 | WRONG ANSWER | 0.03 s | 2, 3, 4, 5 | details |
#17 | WRONG ANSWER | 0.04 s | 2, 3, 4, 5 | details |
#18 | WRONG ANSWER | 0.04 s | 2, 3, 4, 5 | details |
#19 | TIME LIMIT EXCEEDED | -- | 3, 4, 5 | details |
#20 | TIME LIMIT EXCEEDED | -- | 3, 4, 5 | details |
#21 | WRONG ANSWER | 0.03 s | 3, 4, 5 | details |
#22 | TIME LIMIT EXCEEDED | -- | 3, 4, 5 | details |
#23 | TIME LIMIT EXCEEDED | -- | 3, 5 | details |
#24 | TIME LIMIT EXCEEDED | -- | 3, 5 | details |
#25 | TIME LIMIT EXCEEDED | -- | 3, 5 | details |
#26 | WRONG ANSWER | 0.03 s | 3, 5 | details |
#27 | TIME LIMIT EXCEEDED | -- | 3, 5 | details |
#28 | TIME LIMIT EXCEEDED | -- | 5 | details |
#29 | TIME LIMIT EXCEEDED | -- | 5 | details |
#30 | TIME LIMIT EXCEEDED | -- | 4, 5 | details |
#31 | TIME LIMIT EXCEEDED | -- | 4, 5 | details |
#32 | TIME LIMIT EXCEEDED | -- | 4, 5 | details |
#33 | TIME LIMIT EXCEEDED | -- | 4, 5 | details |
#34 | TIME LIMIT EXCEEDED | -- | 5 | details |
#35 | TIME LIMIT EXCEEDED | -- | 5 | details |
#36 | TIME LIMIT EXCEEDED | -- | 5 | details |
#37 | ACCEPTED | 0.03 s | 1, 2, 3, 4, 5 | details |
#38 | WRONG ANSWER | 0.05 s | 2, 3, 5 | details |
#39 | WRONG ANSWER | 0.03 s | 2, 3, 5 | details |
#40 | WRONG ANSWER | 0.03 s | 2, 3, 5 | details |
#41 | ACCEPTED | 0.02 s | 1, 2, 3, 5 | details |
#42 | WRONG ANSWER | 0.03 s | 2, 3, 5 | details |
#43 | TIME LIMIT EXCEEDED | -- | 3, 4, 5 | details |
#44 | TIME LIMIT EXCEEDED | -- | 3, 4, 5 | details |
#45 | WRONG ANSWER | 0.22 s | 2, 3, 4, 5 | details |
#46 | WRONG ANSWER | 0.03 s | 2, 3, 4, 5 | details |
#47 | WRONG ANSWER | 0.03 s | 2, 3, 5 | details |
#48 | TIME LIMIT EXCEEDED | -- | 3, 4, 5 | details |
#49 | TIME LIMIT EXCEEDED | -- | 4, 5 | details |
Code
/* ЗАПУСКАЕМ ░ГУСЯ░▄▀▀▀▄░РАБОТЯГУ░░ ▄███▀░◐░░░▌░░░░░░░ ░░░░▌░░░░░▐░░░░░░░ ░░░░▐░░░░░▐░░░░░░░ ░░░░▐░░░░░▐░░░░░░░ ░░░░▐░░░░░▐░░░░░░░ ░░░░▐░░░░░▐░░░░░░░ ░░░░▐░░░░░▐░░░░░░░ ░░░░▐░░░░░▐░░░░░░░ ░░░░▐░░░░░▐░░░░░░░ ░░░░▐░░░░░▐░░░░░░░ ░░░░▌░░░░░▐▄▄░░░░░ ░░░░▌░░░░▄▀▒▒▀▀▀▀▄ ░░░▐░░░░▐▒▒▒▒▒▒▒▒▀▀▄ ░░░▐░░░░▐▄▒▒▒▒▒▒▒▒▒▒▀▄ ░░░░▀▄░░░░▀▄▒▒▒▒▒▒▒▒▒▒▀▄ ░░░░░░▀▄▄▄▄▄█▄▄▄▄▄▄▄▄▄▄▄▀▄ ░░░░░░░░░░░▌▌░▌▌░░░░░ ░░░░░░░░░░░▌▌░▌▌░░░░░ ░░░░░░░░░▄▄▌▌▄▌▌░░░░░ */ #include <iostream> #include <complex> #include <vector> #include <string> #include <algorithm> #include <cstdio> #include <numeric> #include <cstring> #include <ctime> #include <cstdlib> #include <set> #include <map> #include <unordered_map> #include <unordered_set> #include <list> #include <cmath> #include <bitset> #include <cassert> #include <queue> #include <stack> #include <deque> using namespace std; template<typename T1, typename T2> inline void chkmin(T1 &a, T2 b) {if (a > b) a = b;} template<typename T1, typename T2> inline void chkmax(T1 &a, T2 b) {if (a < b) a = b;} #define files(FILENAME) read(FILENAME); write(FILENAME) #define read(FILENAME) freopen((FILENAME + ".in").c_str(), "r", stdin) #define write(FILENAME) freopen((FILENAME + ".out").c_str(), "w", stdout) #define all(c) (c).begin(), (c).end() #define sz(c) (int)(c).size() #define left left228 #define right right228 #define y1 y1228 #define mp make_pair #define pb push_back #define y2 y2228 const string FILENAME = "input"; const int MAXN = 100228; int n, m; vector<int> gg[MAXN]; bool used[MAXN]; vector<int> v[MAXN]; vector<int> order; void dfss(int u) { used[u] = true; for (auto h: gg[u]) { if (!used[h]) { dfss(h); } } order.pb(u); } void dfs1(int u) { //cout << u + 1 << endl; used[u] = true; for (auto h: v[u]) { //cout << u << ' ' << h << endl; if (!used[h]) { dfs1(h); } } order.pb(u); } struct edge { int a, b, cap, flow; }; int s, t, d[MAXN * 2], ptr[MAXN * 2], q[MAXN * 2]; vector<edge> e; vector<int> g[MAXN * 2]; void add_edge(int a, int b, int cap) { edge e1 = {a, b, cap, 0}; edge e2 = {b, a, 0, 0}; g[a].push_back((int)e.size()); e.push_back(e1); g[b].push_back((int)e.size()); e.push_back(e2); } bool bfs() { int qh = 0, qt = 0; q[qt++] = s; memset(d, -1, sizeof(d)); d[s] = 0; while (qh < qt && d[t] == -1) { int v = q[qh++]; for (unsigned int i = 0; i < g[v].size(); i++) { int id = g[v][i], to = e[id].b; if (d[v] != -1 && d[to] == -1 && e[id].flow < e[id].cap) { q[qt++] = to; d[to] = d[v] + 1; } } } return d[t] != -1; } int dfs(int v, int flow) { if (!flow) { return 0; } if (v == t) { return flow; } for (; ptr[v] < (int)g[v].size(); ptr[v]++) { int id = g[v][ptr[v]], to = e[id].b; if (d[to] != d[v] + 1) { continue; } int pushed = dfs(to, min(flow, e[id].cap - e[id].flow)); if (pushed) { e[id].flow += pushed; e[id ^ 1].flow -= pushed; return pushed; } } return 0; } int dinic() { int flow = 0; for (;;) { if (!bfs()) { break; } memset(ptr, 0, sizeof(ptr)); while (int pushed = dfs(s, 10000000)) { flow += pushed; } } return flow; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); //read(FILENAME); cin >> n >> m; for (int i = 0; i < m; i++) { int a, b; cin >> a >> b; a--, b--; gg[a].pb(b); gg[b].pb(a); } if (m == n - 1) { vector<int> st; for (int i = 0; i < n; i++) { if (sz(gg[i]) == 1) { st.pb(i); } } if (sz(st) != 2) { cout << "IMPOSSIBLE\n"; return 0; } dfss(st[0]); for (auto x: order) { cout << x + 1 << ' '; } cout << '\n'; return 0; } for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { e.clear(); for (int i = 0; i <= 2 * n + 1; i++) { g[i].clear(); } for (int t = 0; t < n; t++) { add_edge(2 * n, t * 2 + 1, 1); add_edge(t * 2, 2 * n + 1, 1); for (auto h: gg[t]) { add_edge(t * 2 + 1, h * 2, n); } } add_edge(2 * j + 1, 2 * i, n); s = 2 * n; t = 2 * n + 1; int kek = dinic(); if (kek == n) { // cout << i << ' ' << j << endl; for (auto x: gg[i]) { v[i].pb(x); } for (auto x: gg[j]) { v[x].pb(j); } for (auto x: e) { if (x.flow >= 1) { if (x.a >= 0 && x.a < 2 * n && x.b >= 0 && x.b < 2 * n) { //cout << x.a / 2 << ' ' << x.b / 2 << ' ' << x.flow << endl; v[x.a / 2].pb(x.b / 2); } } } dfs1(i); reverse(all(order)); for (auto x: order) { cout << x + 1 << ' '; } cout << '\n'; exit(0); } } } cout << "IMPOSSIBLE\n"; return 0; }
Test details
Test 1
Group: 1, 4, 5
Verdict: ACCEPTED
input |
---|
100000 99999 8326 74462 11810 58064 21677 73087 62986 25005 ... |
correct output |
---|
1 44159 25721 84659 90058 9960... |
user output |
---|
100000 55408 4224 23528 55621 ... Truncated |
Test 2
Group: 1, 5
Verdict: ACCEPTED
input |
---|
100000 99999 28990 31200 86271 56882 61089 18658 52422 57504 ... |
correct output |
---|
68068 86325 91398 75677 51068 ... |
user output |
---|
75520 37121 89333 44052 51784 ... Truncated |
Test 3
Group: 1, 5
Verdict: ACCEPTED
input |
---|
100000 99999 29378 80094 12282 29378 96138 29378 61870 29378 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 4
Group: 1, 5
Verdict: ACCEPTED
input |
---|
100000 99999 97935 71091 9181 31715 73649 47675 45394 25464 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 5
Group: 1, 5
Verdict: ACCEPTED
input |
---|
100000 99999 2897 55594 11759 89041 56061 8717 69672 73046 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 6
Group: 2, 3, 5
Verdict: WRONG ANSWER
input |
---|
100 200 55 10 33 57 68 39 29 27 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
1 37 75 84 18 70 72 83 60 78 3... Truncated |
Test 7
Group: 2, 3, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
100 175 71 86 100 88 83 92 25 73 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
(empty) |
Test 8
Group: 2, 3, 4, 5
Verdict: WRONG ANSWER
input |
---|
100 200 26 58 49 25 66 20 20 85 ... |
correct output |
---|
1 2 86 60 34 92 23 4 44 89 76 ... |
user output |
---|
1 83 3 32 10 99 79 70 52 7 81 ... Truncated |
Test 9
Group: 2, 3, 4, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
100 195 19 28 63 48 1 57 1 20 ... |
correct output |
---|
12 97 18 74 36 10 78 50 61 95 ... |
user output |
---|
(empty) |
Test 10
Group: 2, 3, 4, 5
Verdict: WRONG ANSWER
input |
---|
100 193 48 66 15 67 32 14 36 78 ... |
correct output |
---|
1 56 13 32 14 49 75 93 18 6 54... |
user output |
---|
1 56 30 8 88 54 6 52 86 63 97 ... |
Test 11
Group: 2, 3, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
100 195 47 68 57 61 45 17 80 61 ... |
correct output |
---|
57 20 83 41 25 33 60 91 59 7 7... |
user output |
---|
(empty) |
Test 12
Group: 2, 3, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
100 185 43 78 76 99 78 39 83 61 ... |
correct output |
---|
78 43 32 88 26 28 64 81 7 72 2... |
user output |
---|
(empty) |
Test 13
Group: 2, 3, 4, 5
Verdict: WRONG ANSWER
input |
---|
99 132 96 16 18 89 98 50 66 26 ... |
correct output |
---|
1 12 45 71 97 22 35 9 60 27 20... |
user output |
---|
23 59 94 91 82 16 96 50 77 |
Test 14
Group: 2, 3, 4, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
98 144 25 6 30 34 58 25 31 41 ... |
correct output |
---|
32 7 92 1 63 86 87 14 90 17 81... |
user output |
---|
(empty) |
Test 15
Group: 2, 3, 4, 5
Verdict: WRONG ANSWER
input |
---|
96 145 19 70 72 92 27 72 17 85 ... |
correct output |
---|
1 50 30 4 10 48 42 5 70 19 29 ... |
user output |
---|
1 50 |
Test 16
Group: 2, 3, 4, 5
Verdict: WRONG ANSWER
input |
---|
96 158 79 74 41 70 8 5 73 90 ... |
correct output |
---|
7 59 44 27 1 30 49 28 80 52 15... |
user output |
---|
1 44 30 49 27 59 7 |
Test 17
Group: 2, 3, 4, 5
Verdict: WRONG ANSWER
input |
---|
96 142 95 35 67 89 91 70 48 21 ... |
correct output |
---|
13 20 81 33 1 51 19 69 16 85 6... |
user output |
---|
1 20 81 33 13 51 |
Test 18
Group: 2, 3, 4, 5
Verdict: WRONG ANSWER
input |
---|
72 111 70 17 25 3 58 24 52 9 ... |
correct output |
---|
21 59 48 8 1 2 31 10 11 41 4 5... |
user output |
---|
1 8 48 2 |
Test 19
Group: 3, 4, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
988 1563 402 701 830 801 50 578 8 144 ... |
correct output |
---|
1 136 368 683 447 304 131 53 8... |
user output |
---|
(empty) |
Test 20
Group: 3, 4, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
994 1555 171 541 66 915 330 350 494 251 ... |
correct output |
---|
1 164 205 151 951 797 4 654 14... |
user output |
---|
(empty) |
Test 21
Group: 3, 4, 5
Verdict: WRONG ANSWER
input |
---|
1000 2000 711 947 775 441 691 471 844 28 ... |
correct output |
---|
1 676 731 662 248 31 165 558 8... |
user output |
---|
1 676 346 860 940 788 505 761 ... Truncated |
Test 22
Group: 3, 4, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
1000 2000 811 889 873 984 83 52 144 511 ... |
correct output |
---|
60 909 522 568 40 77 181 441 8... |
user output |
---|
(empty) |
Test 23
Group: 3, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
1000 1869 625 715 448 714 110 927 432 1000 ... |
correct output |
---|
224 326 221 30 76 475 666 694 ... |
user output |
---|
(empty) |
Test 24
Group: 3, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
1000 1783 709 1 182 768 355 40 786 260 ... |
correct output |
---|
230 6 135 678 346 19 470 960 3... |
user output |
---|
(empty) |
Test 25
Group: 3, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
1000 2000 92 876 273 598 287 535 526 972 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
(empty) |
Test 26
Group: 3, 5
Verdict: WRONG ANSWER
input |
---|
1000 1910 789 821 553 740 889 527 488 730 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
1 159 616 123 867 449 543 255 ... Truncated |
Test 27
Group: 3, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
1000 1608 910 416 503 898 928 14 412 903 ... |
correct output |
---|
140 404 739 563 63 794 623 948... |
user output |
---|
(empty) |
Test 28
Group: 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 198666 5659 89691 91040 53375 96642 56177 28768 57001 ... |
correct output |
---|
45598 74078 1039 83702 16344 8... |
user output |
---|
(empty) |
Test 29
Group: 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 197194 41636 91770 63018 23827 39207 93713 67765 47715 ... |
correct output |
---|
79054 61855 53279 55546 60860 ... |
user output |
---|
(empty) |
Test 30
Group: 4, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 199985 13674 42886 51349 6858 78502 18751 13628 65936 ... |
correct output |
---|
17857 81664 4369 61462 79754 8... |
user output |
---|
(empty) |
Test 31
Group: 4, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 200000 27666 33166 7161 81452 73134 30281 5106 29308 ... |
correct output |
---|
76869 5635 23236 12666 61633 8... |
user output |
---|
(empty) |
Test 32
Group: 4, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 200000 62814 54729 98407 26888 91808 70132 58916 49730 ... |
correct output |
---|
19788 11202 3496 24237 68564 5... |
user output |
---|
(empty) |
Test 33
Group: 4, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 200000 2299 91653 21125 75544 54029 94067 86513 45051 ... |
correct output |
---|
1 20339 9304 40427 67694 95656... |
user output |
---|
(empty) |
Test 34
Group: 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 200000 34688 93668 78127 18902 55150 33116 273 88797 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
(empty) |
Test 35
Group: 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 200000 21026 14630 5605 59639 25604 78683 55713 70513 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
(empty) |
Test 36
Group: 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 200000 63190 73606 52072 54105 22092 31495 9189 37924 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
(empty) |
Test 37
Group: 1, 2, 3, 4, 5
Verdict: ACCEPTED
input |
---|
2 1 2 1 |
correct output |
---|
1 2 |
user output |
---|
2 1 |
Test 38
Group: 2, 3, 5
Verdict: WRONG ANSWER
input |
---|
7 9 1 2 1 3 2 3 1 4 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
1 6 7 4 5 2 3 |
Test 39
Group: 2, 3, 5
Verdict: WRONG ANSWER
input |
---|
9 12 1 2 2 3 3 1 4 5 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
1 7 9 8 4 6 5 3 2 |
Test 40
Group: 2, 3, 5
Verdict: WRONG ANSWER
input |
---|
5 5 4 2 4 3 2 1 3 1 ... |
correct output |
---|
4 2 3 1 5 |
user output |
---|
2 1 5 4 3 |
Test 41
Group: 1, 2, 3, 5
Verdict: ACCEPTED
input |
---|
4 3 1 2 3 2 4 2 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 42
Group: 2, 3, 5
Verdict: WRONG ANSWER
input |
---|
17 30 4 1 3 14 6 16 13 6 ... |
correct output |
---|
7 8 11 15 1 2 9 3 14 13 5 10 1... |
user output |
---|
1 12 16 9 3 14 2 5 17 10 6 13 ... |
Test 43
Group: 3, 4, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
992 1712 377 709 847 640 261 902 761 693 ... |
correct output |
---|
870 1 925 928 950 257 766 520 ... |
user output |
---|
(empty) |
Test 44
Group: 3, 4, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
990 1672 305 445 800 155 365 779 824 247 ... |
correct output |
---|
108 461 160 696 895 655 376 21... |
user output |
---|
(empty) |
Test 45
Group: 2, 3, 4, 5
Verdict: WRONG ANSWER
input |
---|
99 169 35 32 97 43 22 62 33 7 ... |
correct output |
---|
19 70 62 22 54 78 25 14 3 81 1... |
user output |
---|
7 48 26 33 59 69 94 9 32 74 8 |
Test 46
Group: 2, 3, 4, 5
Verdict: WRONG ANSWER
input |
---|
99 164 62 73 19 35 55 92 79 91 ... |
correct output |
---|
21 25 64 90 17 15 89 95 70 33 ... |
user output |
---|
1 75 38 81 29 36 37 61 26 55 8... |
Test 47
Group: 2, 3, 5
Verdict: WRONG ANSWER
input |
---|
53 68 7 46 51 14 3 18 8 40 ... |
correct output |
---|
32 30 38 33 27 12 8 20 2 34 45... |
user output |
---|
1 28 51 13 15 30 38 |
Test 48
Group: 3, 4, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
996 1902 661 201 19 613 895 438 180 32 ... |
correct output |
---|
220 795 198 239 40 164 773 834... |
user output |
---|
(empty) |
Test 49
Group: 4, 5
Verdict: TIME LIMIT EXCEEDED
input |
---|
6110 11528 3366 4718 3226 2188 5022 1186 3205 5349 ... |
correct output |
---|
1 2527 2211 554 4201 4522 1494... |
user output |
---|
(empty) |