# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
940760 | 2024-03-07T15:17:53 Z | Sundavar | Monster Game (JOI21_monster) | C++17 | 72 ms | 4908 KB |
#include "monster.h" #include <bits/stdc++.h> using namespace std; mt19937 rng(11); vector<vector<int> > m(1000, vector<int>(1000, -1)); bool ask(int a, int b){ if(m[a][b] == -1){ m[a][b] = Query(a,b); m[b][a] = 1 - m[a][b]; } return m[a][b]; } vector<int> solve2(vector<int> v){ if(v.size() == 1) return v; vector<int> left, right; for(int i = 0; i < v.size(); i++) if(i < v.size()/2) left.push_back(v[i]); else right.push_back(v[i]); left = solve2(left), right = solve2(right); vector<int> res; /*for(int& a : left) cout << a << " "; cout << "\n"; for(int& a : right) cout << a << " "; cout << "\n"; cout << "\n";*/ for(int l = 0, r = 0; l < left.size() || r < right.size();){ if(r == right.size() || (l < left.size() && ask(right[r], left[l]))) res.push_back(left[l++]); else res.push_back(right[r++]); } return res; } void correct_long(vector<int>& v, int i){ int l = 1; while(i+l+1 < v.size() && ask(v[i], v[i+l+1])) l++; for(int j = 0; j < (l+1)/2; j++) swap(v[i+j], v[i+l-j]); } void correct_v(vector<int>& v, int i){ int l = 1; while(i+l < v.size() && !ask(v[i-1], v[i+l])) l++; for(int j = 0; j < (l+1)/2; j++) swap(v[i+j], v[i+l-j]); } std::vector<int> Solve(int N) { vector<int> v; for(int i = 0; i < N ; i++) v.push_back(i); shuffle(v.begin(), v.end(), rng); v = solve2(v); /*for(int& a : v) cout<<a<<" "; cout << "\n";*/ int cnt = 0, j = 0; for(int i = 1; i < N; i++){ cnt += ask(v[0], v[i]); if(cnt > 1) break; } if(cnt != 1){ correct_long(v, 0); } if(cnt == 1 && !ask(v[0], v[1])){ int cnt2 = 0; for(int i = 0; i < N; i++) if(i != 1){ cnt2 += ask(v[1], v[i]); if(cnt2 > 1) break; } if(cnt2 == 1) swap(v[0], v[1]); } for(int i = 0; i < N-1; i++){ if(!ask(v[i], v[i+1])){ correct_v(v, i+1); /*for(int& a : v) cout<<a<<" "; cout << "\n";*/ } } /*for(int& a : v) cout<<a<<" "; cout << "\n";*/ vector<int> T(N); for(int i = 0; i < N; i++) T[v[i]] = i; return T; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 4184 KB | Output is correct |
2 | Correct | 2 ms | 4184 KB | Output is correct |
3 | Correct | 2 ms | 4184 KB | Output is correct |
4 | Correct | 2 ms | 4184 KB | Output is correct |
5 | Correct | 2 ms | 4184 KB | Output is correct |
6 | Correct | 2 ms | 4184 KB | Output is correct |
7 | Correct | 2 ms | 4184 KB | Output is correct |
8 | Correct | 2 ms | 4184 KB | Output is correct |
9 | Correct | 2 ms | 4184 KB | Output is correct |
10 | Correct | 2 ms | 4184 KB | Output is correct |
11 | Correct | 2 ms | 4184 KB | Output is correct |
12 | Correct | 2 ms | 4296 KB | Output is correct |
13 | Correct | 2 ms | 4184 KB | Output is correct |
14 | Correct | 2 ms | 4184 KB | Output is correct |
15 | Correct | 2 ms | 4184 KB | Output is correct |
16 | Correct | 13 ms | 4184 KB | Output is correct |
17 | Correct | 8 ms | 4184 KB | Output is correct |
18 | Correct | 7 ms | 4184 KB | Output is correct |
19 | Correct | 11 ms | 4184 KB | Output is correct |
20 | Correct | 8 ms | 4184 KB | Output is correct |
21 | Correct | 3 ms | 4184 KB | Output is correct |
22 | Correct | 2 ms | 4232 KB | Output is correct |
23 | Correct | 2 ms | 4184 KB | Output is correct |
24 | Correct | 2 ms | 4196 KB | Output is correct |
25 | Correct | 3 ms | 4184 KB | Output is correct |
26 | Correct | 11 ms | 4184 KB | Output is correct |
27 | Correct | 2 ms | 4184 KB | Output is correct |
28 | Correct | 2 ms | 4264 KB | Output is correct |
29 | Correct | 2 ms | 4436 KB | Output is correct |
30 | Correct | 2 ms | 4184 KB | Output is correct |
31 | Correct | 2 ms | 4436 KB | Output is correct |
32 | Correct | 7 ms | 4184 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 4184 KB | Output is correct |
2 | Correct | 2 ms | 4184 KB | Output is correct |
3 | Correct | 2 ms | 4184 KB | Output is correct |
4 | Correct | 2 ms | 4184 KB | Output is correct |
5 | Correct | 2 ms | 4184 KB | Output is correct |
6 | Correct | 2 ms | 4184 KB | Output is correct |
7 | Correct | 2 ms | 4184 KB | Output is correct |
8 | Correct | 2 ms | 4184 KB | Output is correct |
9 | Correct | 2 ms | 4184 KB | Output is correct |
10 | Correct | 2 ms | 4184 KB | Output is correct |
11 | Correct | 2 ms | 4184 KB | Output is correct |
12 | Correct | 2 ms | 4296 KB | Output is correct |
13 | Correct | 2 ms | 4184 KB | Output is correct |
14 | Correct | 2 ms | 4184 KB | Output is correct |
15 | Correct | 2 ms | 4184 KB | Output is correct |
16 | Correct | 13 ms | 4184 KB | Output is correct |
17 | Correct | 8 ms | 4184 KB | Output is correct |
18 | Correct | 7 ms | 4184 KB | Output is correct |
19 | Correct | 11 ms | 4184 KB | Output is correct |
20 | Correct | 8 ms | 4184 KB | Output is correct |
21 | Correct | 3 ms | 4184 KB | Output is correct |
22 | Correct | 2 ms | 4232 KB | Output is correct |
23 | Correct | 2 ms | 4184 KB | Output is correct |
24 | Correct | 2 ms | 4196 KB | Output is correct |
25 | Correct | 3 ms | 4184 KB | Output is correct |
26 | Correct | 11 ms | 4184 KB | Output is correct |
27 | Correct | 2 ms | 4184 KB | Output is correct |
28 | Correct | 2 ms | 4264 KB | Output is correct |
29 | Correct | 2 ms | 4436 KB | Output is correct |
30 | Correct | 2 ms | 4184 KB | Output is correct |
31 | Correct | 2 ms | 4436 KB | Output is correct |
32 | Correct | 7 ms | 4184 KB | Output is correct |
33 | Correct | 55 ms | 4688 KB | Output is correct |
34 | Correct | 56 ms | 4640 KB | Output is correct |
35 | Correct | 44 ms | 4440 KB | Output is correct |
36 | Correct | 40 ms | 4440 KB | Output is correct |
37 | Correct | 58 ms | 4432 KB | Output is correct |
38 | Correct | 61 ms | 4688 KB | Output is correct |
39 | Correct | 57 ms | 4696 KB | Output is correct |
40 | Correct | 43 ms | 4668 KB | Output is correct |
41 | Correct | 51 ms | 4648 KB | Output is correct |
42 | Correct | 72 ms | 4652 KB | Output is correct |
43 | Correct | 50 ms | 4396 KB | Output is correct |
44 | Correct | 45 ms | 4672 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Partially correct | 53 ms | 4908 KB | Partially correct |
2 | Partially correct | 42 ms | 4444 KB | Partially correct |
3 | Partially correct | 57 ms | 4416 KB | Partially correct |
4 | Partially correct | 58 ms | 4436 KB | Partially correct |
5 | Partially correct | 53 ms | 4648 KB | Partially correct |
6 | Correct | 55 ms | 4440 KB | Output is correct |
7 | Correct | 41 ms | 4432 KB | Output is correct |
8 | Partially correct | 70 ms | 4696 KB | Partially correct |
9 | Partially correct | 42 ms | 4420 KB | Partially correct |
10 | Partially correct | 51 ms | 4660 KB | Partially correct |
11 | Partially correct | 61 ms | 4432 KB | Partially correct |
12 | Partially correct | 49 ms | 4656 KB | Partially correct |
13 | Correct | 39 ms | 4404 KB | Output is correct |
14 | Correct | 41 ms | 4440 KB | Output is correct |
15 | Correct | 26 ms | 4688 KB | Output is correct |
16 | Correct | 40 ms | 4396 KB | Output is correct |
17 | Correct | 54 ms | 4412 KB | Output is correct |
18 | Correct | 35 ms | 4440 KB | Output is correct |