Task: | Thin Ice |
Sender: | Gustav Bille Gørtz |
Submission time: | 2024-04-14 16:02:34 +0300 |
Language: | C++ (C++17) |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
#3 | WRONG ANSWER | 0 |
#4 | WRONG ANSWER | 0 |
#5 | WRONG ANSWER | 0 |
#6 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | WRONG ANSWER | 0.00 s | 1, 5, 6 | details |
#2 | WRONG ANSWER | 0.00 s | 1, 5, 6 | details |
#3 | WRONG ANSWER | 0.00 s | 1, 5, 6 | details |
#4 | ACCEPTED | 0.00 s | 1, 5, 6 | details |
#5 | WRONG ANSWER | 0.00 s | 1, 5, 6 | details |
#6 | ACCEPTED | 0.00 s | 1, 5, 6 | details |
#7 | ACCEPTED | 0.00 s | 1, 5, 6 | details |
#8 | WRONG ANSWER | 0.00 s | 1, 5, 6 | details |
#9 | WRONG ANSWER | 0.00 s | 1, 2, 5, 6 | details |
#10 | ACCEPTED | 0.12 s | 2, 6 | details |
#11 | ACCEPTED | 0.10 s | 2, 6 | details |
#12 | ACCEPTED | 0.12 s | 2, 6 | details |
#13 | WRONG ANSWER | 0.10 s | 2, 6 | details |
#14 | WRONG ANSWER | 0.10 s | 2, 6 | details |
#15 | ACCEPTED | 0.11 s | 2, 6 | details |
#16 | WRONG ANSWER | 0.11 s | 2, 6 | details |
#17 | ACCEPTED | 0.12 s | 2, 6 | details |
#18 | WRONG ANSWER | 0.12 s | 2, 6 | details |
#19 | ACCEPTED | 0.10 s | 2, 6 | details |
#20 | ACCEPTED | 0.10 s | 2, 6 | details |
#21 | ACCEPTED | 0.09 s | 2, 6 | details |
#22 | WRONG ANSWER | 0.00 s | 3, 4, 5, 6 | details |
#23 | WRONG ANSWER | 0.01 s | 3, 4, 5, 6 | details |
#24 | WRONG ANSWER | 0.01 s | 3, 4, 5, 6 | details |
#25 | ACCEPTED | 0.00 s | 3, 4, 5, 6 | details |
#26 | WRONG ANSWER | 0.00 s | 3, 4, 5, 6 | details |
#27 | WRONG ANSWER | 0.00 s | 3, 4, 5, 6 | details |
#28 | WRONG ANSWER | 0.19 s | 4, 6 | details |
#29 | WRONG ANSWER | 0.16 s | 4, 6 | details |
#30 | WRONG ANSWER | 0.16 s | 4, 6 | details |
#31 | WRONG ANSWER | 0.17 s | 4, 6 | details |
#32 | ACCEPTED | 0.12 s | 4, 6 | details |
#33 | WRONG ANSWER | 0.14 s | 4, 6 | details |
#34 | WRONG ANSWER | 0.19 s | 4, 6 | details |
#35 | WRONG ANSWER | 0.01 s | 5, 6 | details |
#36 | WRONG ANSWER | 0.01 s | 5, 6 | details |
#37 | WRONG ANSWER | 0.01 s | 5, 6 | details |
#38 | WRONG ANSWER | 0.01 s | 5, 6 | details |
#39 | ACCEPTED | 0.01 s | 5, 6 | details |
#40 | ACCEPTED | 0.01 s | 5, 6 | details |
#41 | WRONG ANSWER | 0.01 s | 5, 6 | details |
#42 | WRONG ANSWER | 0.18 s | 6 | details |
#43 | WRONG ANSWER | 0.18 s | 6 | details |
#44 | WRONG ANSWER | 0.16 s | 6 | details |
#45 | WRONG ANSWER | 0.19 s | 6 | details |
#46 | ACCEPTED | 0.13 s | 6 | details |
#47 | ACCEPTED | 0.16 s | 6 | details |
#48 | WRONG ANSWER | 0.18 s | 6 | details |
Compiler report
input/code.cpp: In function 'int oinkoink(int, int)': input/code.cpp:72:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare] 72 | for (int i = 0; i < Ch[p].size(); i++) { | ~~^~~~~~~~~~~~~~
Code
#include<iostream> #include<iomanip> #include<algorithm> #include<vector> #include<set> #include<numeric> using namespace std; #define vi vector<int> #define pi pair<int, int> #define vp vector<pi> #define vvi vector<vi> #define all(x) x.begin(), x.end() #define fi first #define se second #define rall(x) rbegin(x), rend(x) #define ss set<int> int n, m; int ind(int x, int y) { return y*n+x; } struct point { int d, x, y, idx; }; struct UF { vi P, Sz, Con; vvi C; ss up; UF (int a) { P.resize(a); iota(all(P), 0); Sz.resize(a, 1); Con.resize(a, 0); C.resize(a); } int find(int a) { return P[a] == a ? a : P[a] = find(P[a]); } void uunion(int a, int b) { a = find(a); b = find(b); //cerr << "union : find(a) : " << a << " ; find(b) : " << b << endl; if (a == b) return; if (Sz[a] < Sz[b]) swap(a, b); if (C[a].size() < C[b].size()) swap(a, b); Sz[a] += Sz[b]; for (auto i : C[b]) C[a].push_back(i); up.insert(a); P[b] = a; Con[a] |= Con[b]; } }; bool comp(point a, point b) { return a.d > b.d; } vi dx = {0, 1, 0, -1}; vi dy = {1, 0, -1, 0}; vi V, Co, S; vvi Ch; int oinkoink(int p, int t) { //cerr << p << " " << t << endl; if (!Co[p]) return 0; int a = min(V[p], t + S[p]); //cerr << a << endl; for (int i = 0; i < Ch[p].size(); i++) { //cerr << i << endl; a = max(a, oinkoink(Ch[p][i], t + S[p] - S[Ch[p][i]])); } return a; } int oink() { vvi D(n, vi(m)); vector<point> L(n*m); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { int d; cin >> d; L[ind(i, j)] = {d, i, j, ind(i, j)}; //cerr << ind(i, j) << endl; D[i][j] = d; } } //cerr << "oink" << endl; sort(all(L), comp); int i = 0; int p = 0; UF uf(n*m); for (int i = 0 ; i < n; i ++) { uf.Con[ind(i, 0)] = 1; uf.Con[ind(i, m-1)] = 1; } for (int i = 0; i < m; i++) { uf.Con[ind(0, i)] = 1; uf.Con[ind(n-1, i)] = 1; } V.resize(n*m*2); Co.resize(n*m*2); S.resize(n*m*2); Ch.resize(n*m*2, {}); for (int d = 2e5; d > 0; d--) { //cerr << "d : " << d << endl; int j = i; while (j < n*m && L[j].d == d) { for (int k = 0; k < 4; k++) { int x = L[j].x + dx[k]; int y = L[j].y + dy[k]; if (x < 0 || x >= n || y < 0 || y >= m || D[x][y] < d) continue; //cerr << "x,y : " << x << "," << y << endl; uf.uunion(ind(x, y), L[j].idx); } /* cerr << j << endl; for (int i = 0; i < n*m; i++) { cerr << uf.find(i) << " "; } cerr << endl; //*/ j++; //cerr << j << endl; } //cerr << "oink" << endl; i = j; for (auto u : uf.up) { if (uf.find(u) != u) continue; //cerr << p << endl; //cerr << d << " " << uf.Con[u] << " " << uf.Sz[u] << " " << endl; /* for (auto print : uf.C[u]) { cerr << print << endl; } //*/ //cerr << p << endl; V[p] = d; Co[p] = uf.Con[u]; S[p] = uf.Sz[u]; Ch[p] = uf.C[u]; uf.C[u] = {p}; p++; } uf.up.clear(); } //cerr << "oink" << endl; return oinkoink(p-1, 0); } int main() { ios::sync_with_stdio(); cin.tie(); cin >> n >> m; cout << oink() << "\n"; }
Test details
Test 1
Group: 1, 5, 6
Verdict: WRONG ANSWER
input |
---|
4 4 9 11 5 7 7 9 14 3 1 3 2 3 11 4 14 8 |
correct output |
---|
10 |
user output |
---|
9 |
Test 2
Group: 1, 5, 6
Verdict: WRONG ANSWER
input |
---|
5 3 10 7 11 8 5 5 12 9 10 3 13 9 ... |
correct output |
---|
10 |
user output |
---|
9 |
Test 3
Group: 1, 5, 6
Verdict: WRONG ANSWER
input |
---|
4 4 3 2 2 2 5 1 1 1 8 4 1 1 7 6 2 1 |
correct output |
---|
8 |
user output |
---|
7 |
Test 4
Group: 1, 5, 6
Verdict: ACCEPTED
input |
---|
3 5 1 11 1 3 5 4 12 7 8 7 13 14 14 9 4 |
correct output |
---|
14 |
user output |
---|
14 |
Test 5
Group: 1, 5, 6
Verdict: WRONG ANSWER
input |
---|
5 3 11 8 12 11 11 12 6 2 3 11 8 13 ... |
correct output |
---|
12 |
user output |
---|
13 |
Test 6
Group: 1, 5, 6
Verdict: ACCEPTED
input |
---|
3 5 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 |
correct output |
---|
14 |
user output |
---|
14 |
Test 7
Group: 1, 5, 6
Verdict: ACCEPTED
input |
---|
4 4 12 8 6 5 12 9 6 1 10 1 3 2 8 1 1 1 |
correct output |
---|
12 |
user output |
---|
12 |
Test 8
Group: 1, 5, 6
Verdict: WRONG ANSWER
input |
---|
4 4 8 3 15 14 10 12 2 4 5 16 9 6 7 13 1 11 |
correct output |
---|
13 |
user output |
---|
14 |
Test 9
Group: 1, 2, 5, 6
Verdict: WRONG ANSWER
input |
---|
4 4 4 1 1 2 3 5 4 2 2 2 1 2 1 4 3 4 |
correct output |
---|
4 |
user output |
---|
3 |
Test 10
Group: 2, 6
Verdict: ACCEPTED
input |
---|
10 20000 5 3 2 1 3 2 3 3 4 5 1 1 2 3 5 ... |
correct output |
---|
5 |
user output |
---|
5 |
Test 11
Group: 2, 6
Verdict: ACCEPTED
input |
---|
10 20000 1 2 1 2 1 2 1 2 1 1 1 1 2 1 1 ... |
correct output |
---|
3 |
user output |
---|
3 |
Test 12
Group: 2, 6
Verdict: ACCEPTED
input |
---|
10 20000 3 2 2 3 1 2 1 4 4 3 1 4 3 2 4 ... |
correct output |
---|
5 |
user output |
---|
5 |
Test 13
Group: 2, 6
Verdict: WRONG ANSWER
input |
---|
20000 10 1 1 3 1 2 1 1 1 1 1 1 2 2 1 1 1 1 2 1 1 2 1 1 1 2 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
4 |
user output |
---|
3 |
Test 14
Group: 2, 6
Verdict: WRONG ANSWER
input |
---|
10 20000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
3 |
user output |
---|
2 |
Test 15
Group: 2, 6
Verdict: ACCEPTED
input |
---|
10 20000 3 1 3 1 2 1 2 3 2 2 1 2 1 1 2 ... |
correct output |
---|
3 |
user output |
---|
3 |
Test 16
Group: 2, 6
Verdict: WRONG ANSWER
input |
---|
10 20000 1 2 2 2 1 2 3 1 2 2 2 1 2 2 2 ... |
correct output |
---|
4 |
user output |
---|
3 |
Test 17
Group: 2, 6
Verdict: ACCEPTED
input |
---|
10 20000 3 3 2 3 2 3 2 2 2 2 2 1 3 2 1 ... |
correct output |
---|
4 |
user output |
---|
4 |
Test 18
Group: 2, 6
Verdict: WRONG ANSWER
input |
---|
10 20000 1 3 3 1 1 4 3 3 3 1 2 2 1 3 1 ... |
correct output |
---|
5 |
user output |
---|
4 |
Test 19
Group: 2, 6
Verdict: ACCEPTED
input |
---|
7 28571 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ... |
correct output |
---|
3 |
user output |
---|
3 |
Test 20
Group: 2, 6
Verdict: ACCEPTED
input |
---|
28571 7 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 ... |
correct output |
---|
5 |
user output |
---|
5 |
Test 21
Group: 2, 6
Verdict: ACCEPTED
input |
---|
447 447 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 ... |
correct output |
---|
3 |
user output |
---|
3 |
Test 22
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
input |
---|
1 100 46 23 23 55 37 17 30 32 25 71 ... |
correct output |
---|
30 |
user output |
---|
86 |
Test 23
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
input |
---|
1 100 8 13 12 11 15 15 15 19 18 21 2... |
correct output |
---|
76 |
user output |
---|
77 |
Test 24
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
input |
---|
1 100 94 94 94 95 95 91 97 100 92 98... |
correct output |
---|
95 |
user output |
---|
98 |
Test 25
Group: 3, 4, 5, 6
Verdict: ACCEPTED
input |
---|
1 100 83 83 83 83 83 83 83 83 83 83 ... |
correct output |
---|
83 |
user output |
---|
83 |
Test 26
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
input |
---|
1 100 33 34 35 38 38 40 41 42 42 45 ... |
correct output |
---|
95 |
user output |
---|
94 |
Test 27
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
input |
---|
1 100 57 1 80 39 18 63 30 86 85 55 8... |
correct output |
---|
29 |
user output |
---|
85 |
Test 28
Group: 4, 6
Verdict: WRONG ANSWER
input |
---|
1 200000 138736 14949 12344 104147 1333... |
correct output |
---|
1806 |
user output |
---|
199513 |
Test 29
Group: 4, 6
Verdict: WRONG ANSWER
input |
---|
1 200000 141245 141090 141163 141286 14... |
correct output |
---|
155109 |
user output |
---|
155436 |
Test 30
Group: 4, 6
Verdict: WRONG ANSWER
input |
---|
1 200000 102358 102469 102440 102402 10... |
correct output |
---|
152388 |
user output |
---|
152677 |
Test 31
Group: 4, 6
Verdict: WRONG ANSWER
input |
---|
1 200000 180410 160820 160820 180614 18... |
correct output |
---|
160832 |
user output |
---|
197738 |
Test 32
Group: 4, 6
Verdict: ACCEPTED
input |
---|
1 200000 198270 198270 198270 198270 19... |
correct output |
---|
198270 |
user output |
---|
198270 |
Test 33
Group: 4, 6
Verdict: WRONG ANSWER
input |
---|
1 200000 1 1 3 2 1 1 2 3 6 6 6 7 8 9 10... |
correct output |
---|
199995 |
user output |
---|
199994 |
Test 34
Group: 4, 6
Verdict: WRONG ANSWER
input |
---|
1 200000 14737 162555 44228 170991 1340... |
correct output |
---|
1902 |
user output |
---|
199157 |
Test 35
Group: 5, 6
Verdict: WRONG ANSWER
input |
---|
31 32 669 792 226 189 860 737 291 83... |
correct output |
---|
565 |
user output |
---|
937 |
Test 36
Group: 5, 6
Verdict: WRONG ANSWER
input |
---|
10 100 730 698 339 743 536 702 94 556... |
correct output |
---|
529 |
user output |
---|
995 |
Test 37
Group: 5, 6
Verdict: WRONG ANSWER
input |
---|
32 31 633 613 618 605 635 638 668 67... |
correct output |
---|
678 |
user output |
---|
684 |
Test 38
Group: 5, 6
Verdict: WRONG ANSWER
input |
---|
142 7 983 930 963 926 979 962 962 966 930 963 924 928 928 926 926 929 929 922 931 931 978 929 929 929 922 959 928 964 ... |
correct output |
---|
934 |
user output |
---|
993 |
Test 39
Group: 5, 6
Verdict: ACCEPTED
input |
---|
31 32 977 977 977 977 977 977 977 97... |
correct output |
---|
977 |
user output |
---|
977 |
Test 40
Group: 5, 6
Verdict: ACCEPTED
input |
---|
50 20 1 27 14 23 38 48 56 3 12 9 6 2... |
correct output |
---|
997 |
user output |
---|
997 |
Test 41
Group: 5, 6
Verdict: WRONG ANSWER
input |
---|
20 50 481 532 624 290 965 58 448 872... |
correct output |
---|
504 |
user output |
---|
940 |
Test 42
Group: 6
Verdict: WRONG ANSWER
input |
---|
447 447 6474 27185 108482 124481 16058... |
correct output |
---|
88202 |
user output |
---|
194569 |
Test 43
Group: 6
Verdict: WRONG ANSWER
input |
---|
1000 200 27722 57131 197677 184858 9285... |
correct output |
---|
89324 |
user output |
---|
197269 |
Test 44
Group: 6
Verdict: WRONG ANSWER
input |
---|
447 447 70928 73154 72640 74764 75237 ... |
correct output |
---|
181096 |
user output |
---|
181170 |
Test 45
Group: 6
Verdict: WRONG ANSWER
input |
---|
7 28571 193031 185883 171670 185794 17... |
correct output |
---|
171680 |
user output |
---|
198289 |
Test 46
Group: 6
Verdict: ACCEPTED
input |
---|
10 20000 191628 191628 191628 191628 19... |
correct output |
---|
191628 |
user output |
---|
191628 |
Test 47
Group: 6
Verdict: ACCEPTED
input |
---|
200 1000 3550 2640 3791 4248 4257 4504 ... |
correct output |
---|
199997 |
user output |
---|
199997 |
Test 48
Group: 6
Verdict: WRONG ANSWER
input |
---|
1000 200 198379 62425 88013 50967 49098... |
correct output |
---|
89131 |
user output |
---|
198983 |