제출 #1158297

#제출 시각아이디문제언어결과실행 시간메모리
1158297lopkusSuper Dango Maker (JOI22_dango3)C++20
7 / 100
237 ms640 KiB
#include "dango3.h" #include <bits/stdc++.h> using namespace std; void Solve(int N, int M) { vector<int> current; for(int i = 1; i <= N * M; i++) { current.push_back(i); } vector<int> have; int cnt = N * M; while(current.size() > N) { while(have.size() < N) { int l = 0, r = M, p = - 1; while(l <= r) { int mid = (l + r) / 2; if(mid * N > current.size()) { r = mid - 1; continue; } vector<int> ask; for(auto x : have) { ask.push_back(x); } for(int i = 0; i < N * mid; i++) { ask.push_back(current[i]); } if(!Query(ask)) { l = mid + 1; p = mid; } else { r = mid - 1; } } l = N * p, r = min((int)current.size() - 1, N * p + N - 1), p = - 1; while(l <= r) { int mid = (l + r) / 2; vector<int> ask; for(auto x : have) { ask.push_back(x); } for(int i = 0; i <= mid; i++) { ask.push_back(current[i]); } if(Query(ask) >= 1) { r = mid - 1; p = mid; } else { l = mid + 1; } } have.push_back(current[p]); current.erase(current.begin() + p); } Answer(have); have.clear(); } Answer(current); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...