# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
940733 | 2024-03-07T14:30:21 Z | Sundavar | Monster Game (JOI21_monster) | C++17 | 72 ms | 4944 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(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) 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) swap(v[0], v[1]); } for(int i = 0; i < N-1; i++) if(!ask(v[i], v[i+1])){ correct(v, i+1); } /*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
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 4184 KB | Output is correct |
2 | Correct | 3 ms | 4184 KB | Output is correct |
3 | Correct | 3 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 | 4 ms | 4184 KB | Output is correct |
8 | Correct | 3 ms | 4184 KB | Output is correct |
9 | Correct | 3 ms | 4296 KB | Output is correct |
10 | Correct | 3 ms | 4184 KB | Output is correct |
11 | Correct | 3 ms | 4184 KB | Output is correct |
12 | Correct | 3 ms | 4184 KB | Output is correct |
13 | Correct | 3 ms | 4184 KB | Output is correct |
14 | Correct | 3 ms | 4200 KB | Output is correct |
15 | Correct | 3 ms | 4184 KB | Output is correct |
16 | Correct | 11 ms | 4184 KB | Output is correct |
17 | Correct | 10 ms | 4184 KB | Output is correct |
18 | Correct | 10 ms | 4184 KB | Output is correct |
19 | Correct | 11 ms | 4184 KB | Output is correct |
20 | Correct | 10 ms | 4184 KB | Output is correct |
21 | Correct | 3 ms | 4184 KB | Output is correct |
22 | Correct | 3 ms | 4184 KB | Output is correct |
23 | Correct | 3 ms | 4184 KB | Output is correct |
24 | Correct | 2 ms | 4184 KB | Output is correct |
25 | Correct | 3 ms | 4184 KB | Output is correct |
26 | Correct | 11 ms | 4288 KB | Output is correct |
27 | Correct | 3 ms | 4184 KB | Output is correct |
28 | Correct | 3 ms | 4184 KB | Output is correct |
29 | Correct | 2 ms | 4184 KB | Output is correct |
30 | Correct | 3 ms | 4184 KB | Output is correct |
31 | Correct | 3 ms | 4184 KB | Output is correct |
32 | Correct | 9 ms | 4184 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 4184 KB | Output is correct |
2 | Correct | 3 ms | 4184 KB | Output is correct |
3 | Correct | 3 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 | 4 ms | 4184 KB | Output is correct |
8 | Correct | 3 ms | 4184 KB | Output is correct |
9 | Correct | 3 ms | 4296 KB | Output is correct |
10 | Correct | 3 ms | 4184 KB | Output is correct |
11 | Correct | 3 ms | 4184 KB | Output is correct |
12 | Correct | 3 ms | 4184 KB | Output is correct |
13 | Correct | 3 ms | 4184 KB | Output is correct |
14 | Correct | 3 ms | 4200 KB | Output is correct |
15 | Correct | 3 ms | 4184 KB | Output is correct |
16 | Correct | 11 ms | 4184 KB | Output is correct |
17 | Correct | 10 ms | 4184 KB | Output is correct |
18 | Correct | 10 ms | 4184 KB | Output is correct |
19 | Correct | 11 ms | 4184 KB | Output is correct |
20 | Correct | 10 ms | 4184 KB | Output is correct |
21 | Correct | 3 ms | 4184 KB | Output is correct |
22 | Correct | 3 ms | 4184 KB | Output is correct |
23 | Correct | 3 ms | 4184 KB | Output is correct |
24 | Correct | 2 ms | 4184 KB | Output is correct |
25 | Correct | 3 ms | 4184 KB | Output is correct |
26 | Correct | 11 ms | 4288 KB | Output is correct |
27 | Correct | 3 ms | 4184 KB | Output is correct |
28 | Correct | 3 ms | 4184 KB | Output is correct |
29 | Correct | 2 ms | 4184 KB | Output is correct |
30 | Correct | 3 ms | 4184 KB | Output is correct |
31 | Correct | 3 ms | 4184 KB | Output is correct |
32 | Correct | 9 ms | 4184 KB | Output is correct |
33 | Correct | 52 ms | 4652 KB | Output is correct |
34 | Correct | 48 ms | 4696 KB | Output is correct |
35 | Correct | 56 ms | 4696 KB | Output is correct |
36 | Correct | 59 ms | 4696 KB | Output is correct |
37 | Correct | 65 ms | 4908 KB | Output is correct |
38 | Correct | 59 ms | 4648 KB | Output is correct |
39 | Correct | 45 ms | 4944 KB | Output is correct |
40 | Correct | 59 ms | 4692 KB | Output is correct |
41 | Correct | 70 ms | 4688 KB | Output is correct |
42 | Correct | 60 ms | 4440 KB | Output is correct |
43 | Correct | 72 ms | 4440 KB | Output is correct |
44 | Correct | 58 ms | 4652 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Partially correct | 62 ms | 4444 KB | Partially correct |
2 | Partially correct | 51 ms | 4436 KB | Partially correct |
3 | Partially correct | 60 ms | 4412 KB | Partially correct |
4 | Partially correct | 44 ms | 4652 KB | Partially correct |
5 | Partially correct | 57 ms | 4440 KB | Partially correct |
6 | Correct | 63 ms | 4396 KB | Output is correct |
7 | Correct | 45 ms | 4696 KB | Output is correct |
8 | Partially correct | 59 ms | 4696 KB | Partially correct |
9 | Partially correct | 49 ms | 4688 KB | Partially correct |
10 | Partially correct | 51 ms | 4668 KB | Partially correct |
11 | Partially correct | 62 ms | 4692 KB | Partially correct |
12 | Partially correct | 63 ms | 4440 KB | Partially correct |
13 | Correct | 55 ms | 4696 KB | Output is correct |
14 | Correct | 47 ms | 4648 KB | Output is correct |
15 | Correct | 28 ms | 4688 KB | Output is correct |
16 | Correct | 41 ms | 4620 KB | Output is correct |
17 | Partially correct | 55 ms | 4440 KB | Partially correct |
18 | Correct | 43 ms | 4440 KB | Output is correct |