제출 #156822

#제출 시각아이디문제언어결과실행 시간메모리
156822popovicirobertMinerals (JOI19_minerals)C++14
6 / 100
19 ms632 KiB
#include "minerals.h" #include <bits/stdc++.h> using namespace std; void Solve(int n) { vector <int> sol(2 * n); vector <bool> in(2 * n); int i, ans = 0; for(int bit = 15; bit >= 0; bit--) { if((1 << bit) >= 2 * n) continue; vector <bool> vis(2 * n); for(i = 0; i < 2 * n; i++) { if(i & (1 << bit)) { if(in[i]) continue; int cur = Query(i + 1); if(cur == ans) { vis[i] = 1; sol[i] ^= (1 << bit); } ans = cur; in[i] = 1; } } for(i = 0; i < 2 * n; i++) { if(vis[i]) continue; int cur = Query(i + 1); if(cur == ans) { sol[i] += (1 << bit); } Query(i + 1); } for(i = 0; i < 2 * n; i++) { if(bit == 0) continue; if(i & (1 << bit)) { if(i & (1 << (bit - 1))) continue; ans = Query(i + 1); in[i] = 0; } } } vector <bool> vis(2 * n); for(i = 0; i < 2 * n; i++) { if(vis[i] == 0) { vis[i] = vis[sol[i]] = 1; Answer(i + 1, sol[i] + 1); } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...