제출 #1314170

#제출 시각아이디문제언어결과실행 시간메모리
1314170cleimekMinerals (JOI19_minerals)C++20
80 / 100
21 ms2784 KiB
#include <bits/stdc++.h> #include "minerals.h" using namespace std; int distinct=0; void GetAns(vector<int>& X, vector<int>& Y, bool is_X){ //state 0 if(X.size()==1){ Answer(X[0],Y[0]); return; } vector<int> new_leftX, new_rightX; vector<int> new_leftY, new_rightY; //half int middleX = X.size()/2; for(int i=0; i<middleX; ++i) new_leftX.push_back(X[i]); for(int i=middleX; i<X.size(); ++i) new_rightX.push_back(X[i]); if (is_X){ for (int i = middleX; i<X.size(); ++i) distinct = Query(X[i]); } else{ for(int i=0; i<middleX; ++i) distinct = Query(X[i]); } for(int i=0; i<Y.size(); ++i){ int curr = Query(Y[i]); if(curr == distinct){ new_leftY.push_back(Y[i]); } else{ new_rightY.push_back(Y[i]); } distinct = curr; } GetAns(new_leftX, new_leftY, true); GetAns(new_rightX, new_rightY, false); } void Solve(int n){ //second level vector<int> lockSet, keySet; for(int i=1; i<=2*n; ++i){ if(Query(i)==distinct) keySet.push_back(i); else{ distinct++; lockSet.push_back(i); } } GetAns(lockSet, keySet, true); }
#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...