# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
797488 | 2023-07-29T12:51:08 Z | beaconmc | Minerals (JOI19_minerals) | C++14 | 313 ms | 15384 KB |
#include "minerals.h" #include <bits/stdc++.h> typedef long long ll; #define FOR(i, x, y) for(ll i=x; i<y; i++) #define FORNEG(i, x, y) for(ll i=x; i>y; i--) #define fast() ios_base::sync_with_stdio(false);cin.tie(NULL) std::set<ll> machine; int query(int a){ if (machine.count(a)){ machine.erase(a); }else{ machine.insert(a); } return Query(a); } void Solve(int N) { ll fuck = 0; using namespace std; vector<vector<ll>> top; vector<vector<ll>> bot; top.push_back({}); bot.push_back({}); ll cur = 0; FOR(i,1, 2*N+1){ ll result = query(i); if (result == cur + 1){ cur++; top[0].push_back(i); }else{ bot[0].push_back(i); } } ll sus = 0; while (!(top.size() == bot.size() && bot.size() == N)){ sus++; vector<vector<ll>> temp; for (auto&i : bot){ if (i.size() == 1){ temp.push_back(i); continue; } long double ratio = 2; if (i.size() >= 8) ratio = 2.58; vector<ll> temp2; ll cutoff = (long double) i.size() / ratio; FOR(j,0,cutoff){ temp2.push_back(i[j]); } temp.push_back(temp2); temp2.clear(); FOR(j, cutoff, i.size()){ temp2.push_back(i[j]); } temp.push_back(temp2); } bot = temp; temp.clear(); ll ind = 0; FOR(i,0,top.size()){ ll tempflag = -1; if (sus%2 == 0){ if (machine.count(bot[ind][0])) tempflag = (sus + 1)%2; else tempflag = sus%2; }else{ if (machine.count(bot[ind][0])) tempflag = sus%2; else tempflag = (sus+1)%2; } if (top[i].size() == 1){ ind += 1; temp.push_back(top[i]); continue; } vector<ll> first; vector<ll> second; ll curval = 0; for (auto&j : bot[ind]){ curval = query(j); } ll idkman = top[i][top[i].size()-1]; top[i].pop_back(); for (auto&j : top[i]){ ll result = query(j); if (result != curval){ curval = result; first.push_back(j); }else{ second.push_back(j); } } if (tempflag%2==1){ if (first.size() != bot[ind].size()) first.push_back(idkman); else second.push_back(idkman); temp.push_back(first); temp.push_back(second); } else{ if (second.size() != bot[ind].size()) second.push_back(idkman); else first.push_back(idkman); temp.push_back(second); temp.push_back(first); } ind += 2; } top = temp; } FOR(i,0,N){ Answer((int) top[i][0],(int) bot[i][0]); } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 208 KB | Output is correct |
2 | Correct | 0 ms | 208 KB | Output is correct |
3 | Correct | 1 ms | 336 KB | Output is correct |
4 | Correct | 1 ms | 336 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 592 KB | Output is correct |
2 | Correct | 10 ms | 976 KB | Output is correct |
3 | Correct | 20 ms | 1740 KB | Output is correct |
4 | Correct | 39 ms | 3004 KB | Output is correct |
5 | Correct | 82 ms | 5052 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 208 KB | Output is correct |
2 | Correct | 0 ms | 208 KB | Output is correct |
3 | Correct | 1 ms | 336 KB | Output is correct |
4 | Correct | 1 ms | 336 KB | Output is correct |
5 | Correct | 4 ms | 592 KB | Output is correct |
6 | Correct | 10 ms | 976 KB | Output is correct |
7 | Correct | 20 ms | 1740 KB | Output is correct |
8 | Correct | 39 ms | 3004 KB | Output is correct |
9 | Correct | 82 ms | 5052 KB | Output is correct |
10 | Correct | 4 ms | 592 KB | Output is correct |
11 | Correct | 57 ms | 3916 KB | Output is correct |
12 | Correct | 83 ms | 5480 KB | Output is correct |
13 | Correct | 77 ms | 5532 KB | Output is correct |
14 | Correct | 65 ms | 5416 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 208 KB | Output is correct |
2 | Correct | 0 ms | 208 KB | Output is correct |
3 | Correct | 1 ms | 336 KB | Output is correct |
4 | Correct | 1 ms | 336 KB | Output is correct |
5 | Correct | 4 ms | 592 KB | Output is correct |
6 | Correct | 10 ms | 976 KB | Output is correct |
7 | Correct | 20 ms | 1740 KB | Output is correct |
8 | Correct | 39 ms | 3004 KB | Output is correct |
9 | Correct | 82 ms | 5052 KB | Output is correct |
10 | Correct | 4 ms | 592 KB | Output is correct |
11 | Correct | 57 ms | 3916 KB | Output is correct |
12 | Correct | 83 ms | 5480 KB | Output is correct |
13 | Correct | 77 ms | 5532 KB | Output is correct |
14 | Correct | 65 ms | 5416 KB | Output is correct |
15 | Correct | 252 ms | 13844 KB | Output is correct |
16 | Correct | 262 ms | 14256 KB | Output is correct |
17 | Correct | 193 ms | 14508 KB | Output is correct |
18 | Correct | 188 ms | 14800 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 208 KB | Output is correct |
2 | Correct | 0 ms | 208 KB | Output is correct |
3 | Correct | 1 ms | 336 KB | Output is correct |
4 | Correct | 1 ms | 336 KB | Output is correct |
5 | Correct | 4 ms | 592 KB | Output is correct |
6 | Correct | 10 ms | 976 KB | Output is correct |
7 | Correct | 20 ms | 1740 KB | Output is correct |
8 | Correct | 39 ms | 3004 KB | Output is correct |
9 | Correct | 82 ms | 5052 KB | Output is correct |
10 | Correct | 4 ms | 592 KB | Output is correct |
11 | Correct | 57 ms | 3916 KB | Output is correct |
12 | Correct | 83 ms | 5480 KB | Output is correct |
13 | Correct | 77 ms | 5532 KB | Output is correct |
14 | Correct | 65 ms | 5416 KB | Output is correct |
15 | Correct | 252 ms | 13844 KB | Output is correct |
16 | Correct | 262 ms | 14256 KB | Output is correct |
17 | Correct | 193 ms | 14508 KB | Output is correct |
18 | Correct | 188 ms | 14800 KB | Output is correct |
19 | Correct | 261 ms | 15384 KB | Output is correct |
20 | Correct | 259 ms | 14096 KB | Output is correct |
21 | Correct | 197 ms | 14760 KB | Output is correct |
22 | Correct | 203 ms | 15128 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 208 KB | Output is correct |
2 | Correct | 0 ms | 208 KB | Output is correct |
3 | Correct | 1 ms | 336 KB | Output is correct |
4 | Correct | 1 ms | 336 KB | Output is correct |
5 | Correct | 4 ms | 592 KB | Output is correct |
6 | Correct | 10 ms | 976 KB | Output is correct |
7 | Correct | 20 ms | 1740 KB | Output is correct |
8 | Correct | 39 ms | 3004 KB | Output is correct |
9 | Correct | 82 ms | 5052 KB | Output is correct |
10 | Correct | 4 ms | 592 KB | Output is correct |
11 | Correct | 57 ms | 3916 KB | Output is correct |
12 | Correct | 83 ms | 5480 KB | Output is correct |
13 | Correct | 77 ms | 5532 KB | Output is correct |
14 | Correct | 65 ms | 5416 KB | Output is correct |
15 | Correct | 252 ms | 13844 KB | Output is correct |
16 | Correct | 262 ms | 14256 KB | Output is correct |
17 | Correct | 193 ms | 14508 KB | Output is correct |
18 | Correct | 188 ms | 14800 KB | Output is correct |
19 | Correct | 261 ms | 15384 KB | Output is correct |
20 | Correct | 259 ms | 14096 KB | Output is correct |
21 | Correct | 197 ms | 14760 KB | Output is correct |
22 | Correct | 203 ms | 15128 KB | Output is correct |
23 | Correct | 269 ms | 14052 KB | Output is correct |
24 | Correct | 264 ms | 13792 KB | Output is correct |
25 | Correct | 208 ms | 14728 KB | Output is correct |
26 | Correct | 206 ms | 14216 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 208 KB | Output is correct |
2 | Correct | 0 ms | 208 KB | Output is correct |
3 | Correct | 1 ms | 336 KB | Output is correct |
4 | Correct | 1 ms | 336 KB | Output is correct |
5 | Correct | 4 ms | 592 KB | Output is correct |
6 | Correct | 10 ms | 976 KB | Output is correct |
7 | Correct | 20 ms | 1740 KB | Output is correct |
8 | Correct | 39 ms | 3004 KB | Output is correct |
9 | Correct | 82 ms | 5052 KB | Output is correct |
10 | Correct | 4 ms | 592 KB | Output is correct |
11 | Correct | 57 ms | 3916 KB | Output is correct |
12 | Correct | 83 ms | 5480 KB | Output is correct |
13 | Correct | 77 ms | 5532 KB | Output is correct |
14 | Correct | 65 ms | 5416 KB | Output is correct |
15 | Correct | 252 ms | 13844 KB | Output is correct |
16 | Correct | 262 ms | 14256 KB | Output is correct |
17 | Correct | 193 ms | 14508 KB | Output is correct |
18 | Correct | 188 ms | 14800 KB | Output is correct |
19 | Correct | 261 ms | 15384 KB | Output is correct |
20 | Correct | 259 ms | 14096 KB | Output is correct |
21 | Correct | 197 ms | 14760 KB | Output is correct |
22 | Correct | 203 ms | 15128 KB | Output is correct |
23 | Correct | 269 ms | 14052 KB | Output is correct |
24 | Correct | 264 ms | 13792 KB | Output is correct |
25 | Correct | 208 ms | 14728 KB | Output is correct |
26 | Correct | 206 ms | 14216 KB | Output is correct |
27 | Correct | 294 ms | 13632 KB | Output is correct |
28 | Correct | 280 ms | 13492 KB | Output is correct |
29 | Correct | 206 ms | 13744 KB | Output is correct |
30 | Correct | 217 ms | 13184 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 208 KB | Output is correct |
2 | Correct | 0 ms | 208 KB | Output is correct |
3 | Correct | 1 ms | 336 KB | Output is correct |
4 | Correct | 1 ms | 336 KB | Output is correct |
5 | Correct | 4 ms | 592 KB | Output is correct |
6 | Correct | 10 ms | 976 KB | Output is correct |
7 | Correct | 20 ms | 1740 KB | Output is correct |
8 | Correct | 39 ms | 3004 KB | Output is correct |
9 | Correct | 82 ms | 5052 KB | Output is correct |
10 | Correct | 4 ms | 592 KB | Output is correct |
11 | Correct | 57 ms | 3916 KB | Output is correct |
12 | Correct | 83 ms | 5480 KB | Output is correct |
13 | Correct | 77 ms | 5532 KB | Output is correct |
14 | Correct | 65 ms | 5416 KB | Output is correct |
15 | Correct | 252 ms | 13844 KB | Output is correct |
16 | Correct | 262 ms | 14256 KB | Output is correct |
17 | Correct | 193 ms | 14508 KB | Output is correct |
18 | Correct | 188 ms | 14800 KB | Output is correct |
19 | Correct | 261 ms | 15384 KB | Output is correct |
20 | Correct | 259 ms | 14096 KB | Output is correct |
21 | Correct | 197 ms | 14760 KB | Output is correct |
22 | Correct | 203 ms | 15128 KB | Output is correct |
23 | Correct | 269 ms | 14052 KB | Output is correct |
24 | Correct | 264 ms | 13792 KB | Output is correct |
25 | Correct | 208 ms | 14728 KB | Output is correct |
26 | Correct | 206 ms | 14216 KB | Output is correct |
27 | Correct | 294 ms | 13632 KB | Output is correct |
28 | Correct | 280 ms | 13492 KB | Output is correct |
29 | Correct | 206 ms | 13744 KB | Output is correct |
30 | Correct | 217 ms | 13184 KB | Output is correct |
31 | Correct | 293 ms | 14488 KB | Output is correct |
32 | Correct | 291 ms | 14216 KB | Output is correct |
33 | Correct | 224 ms | 14536 KB | Output is correct |
34 | Correct | 222 ms | 14060 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 208 KB | Output is correct |
2 | Correct | 0 ms | 208 KB | Output is correct |
3 | Correct | 1 ms | 336 KB | Output is correct |
4 | Correct | 1 ms | 336 KB | Output is correct |
5 | Correct | 4 ms | 592 KB | Output is correct |
6 | Correct | 10 ms | 976 KB | Output is correct |
7 | Correct | 20 ms | 1740 KB | Output is correct |
8 | Correct | 39 ms | 3004 KB | Output is correct |
9 | Correct | 82 ms | 5052 KB | Output is correct |
10 | Correct | 4 ms | 592 KB | Output is correct |
11 | Correct | 57 ms | 3916 KB | Output is correct |
12 | Correct | 83 ms | 5480 KB | Output is correct |
13 | Correct | 77 ms | 5532 KB | Output is correct |
14 | Correct | 65 ms | 5416 KB | Output is correct |
15 | Correct | 252 ms | 13844 KB | Output is correct |
16 | Correct | 262 ms | 14256 KB | Output is correct |
17 | Correct | 193 ms | 14508 KB | Output is correct |
18 | Correct | 188 ms | 14800 KB | Output is correct |
19 | Correct | 261 ms | 15384 KB | Output is correct |
20 | Correct | 259 ms | 14096 KB | Output is correct |
21 | Correct | 197 ms | 14760 KB | Output is correct |
22 | Correct | 203 ms | 15128 KB | Output is correct |
23 | Correct | 269 ms | 14052 KB | Output is correct |
24 | Correct | 264 ms | 13792 KB | Output is correct |
25 | Correct | 208 ms | 14728 KB | Output is correct |
26 | Correct | 206 ms | 14216 KB | Output is correct |
27 | Correct | 294 ms | 13632 KB | Output is correct |
28 | Correct | 280 ms | 13492 KB | Output is correct |
29 | Correct | 206 ms | 13744 KB | Output is correct |
30 | Correct | 217 ms | 13184 KB | Output is correct |
31 | Correct | 293 ms | 14488 KB | Output is correct |
32 | Correct | 291 ms | 14216 KB | Output is correct |
33 | Correct | 224 ms | 14536 KB | Output is correct |
34 | Correct | 222 ms | 14060 KB | Output is correct |
35 | Correct | 313 ms | 14936 KB | Output is correct |
36 | Correct | 300 ms | 14992 KB | Output is correct |
37 | Correct | 224 ms | 14992 KB | Output is correct |
38 | Correct | 235 ms | 15112 KB | Output is correct |