제출 #1181611

#제출 시각아이디문제언어결과실행 시간메모리
1181611AMnuMinerals (JOI19_minerals)C++20
0 / 100
1 ms2532 KiB
#include "minerals.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 9e4; int last, P, L[MAXN], R[MAXN]; bool in[MAXN], rig; vector <int> V[2], mid[MAXN]; // is the pair of x inside? bool check(int x) { int cur = Query(x); in[x] = !in[x]; if (cur == last) { return true; } last = cur; return false; } void Solve(int N) { for (int i=1;i<=2*N;i++) { bool x = check(i); if (x) { int j = V[1].size(); L[j] = 0; R[j] = V[0].size()-1; if (L[j] == R[j]) { Answer(V[0][L[j]],i); P++; } else { mid[(L[j]+R[j])/2].push_back(j); } } V[x].push_back(i); } while (P < N) { rig = !rig; for (int i=0;i<N;i++) { check(V[0][i]); for (int j : mid[i]) { if (check(j)^rig) { R[j] = i; } else { L[j] = i+1; } if (L[j] == R[j]) { Answer(V[0][L[j]],V[1][j]); P++; } else { mid[(L[j]+R[j])/2].push_back(j); } } mid[i].clear(); } } }
#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...