제출 #1170143

#제출 시각아이디문제언어결과실행 시간메모리
11701434QT0RMinerals (JOI19_minerals)C++20
6 / 100
1079 ms1268 KiB
#include "minerals.h" #include <bits/stdc++.h> using namespace std; mt19937 x(chrono::high_resolution_clock::now().time_since_epoch().count()); set<int> in_machine; set<int> out_machine; set<int> answered; int siz; int ran(set<int> &s){ auto it = s.begin(); int powt=x()%((int)s.size()); while(powt--)it++; return *it; } void MyQuery(int v){ siz=Query(v); } void Solve(int N){ vector<pair<int,int>> ans; set<int> to_guess; for (int i = 1; i<=2*N; i++){ to_guess.insert(i); out_machine.insert(i); } while(to_guess.size()){ int prv=siz; int el=-1,el2=-1; while(out_machine.size()){ el=ran(out_machine); out_machine.erase(el); in_machine.insert(el); MyQuery(el); if (prv==siz)break; prv=siz; } while(in_machine.size()){ el2=ran(in_machine); while(el2==el)el2=ran(in_machine); in_machine.erase(el2); out_machine.insert(el2); MyQuery(el2); if (prv==siz)break; prv=siz; } ans.push_back({el,el2}); to_guess.erase(el); to_guess.erase(el2); in_machine.erase(el); out_machine.erase(el2); } for (auto [a,b] : ans)Answer(a,b); } /* 4 1 5 2 6 3 4 7 8 */
#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...