제출 #1169912

#제출 시각아이디문제언어결과실행 시간메모리
1169912bbartekMinerals (JOI19_minerals)C++20
0 / 100
83 ms133384 KiB
#include <bits/stdc++.h> #include "minerals.h" using namespace std; typedef long long ll; #define st first #define nd second #define pb push_back const int maxn = 1e5+7; bool zaznaczone[maxn]; vector<pair<int,int>> wyniki; void rek(vector<int> numery){ if(numery.size() == 2){ wyniki.pb({numery[0],numery[1]}); return; } vector<int> jeden,dwa; int licznik = 0,nowy,stary = 0; for(auto i : numery){ nowy = Query(i); licznik++; if(nowy == stary){ zaznaczone[i] = 1; } if(2*(licznik-nowy) >= numery.size()/2){ stary = nowy; for(int j=0;j<licznik;j++){ if(zaznaczone[i]) continue; nowy = Query(numery[j]); if(nowy == stary){ jeden.pb(numery[j]); } else{ dwa.pb(numery[j]); } stary = nowy; } break; } stary = nowy; } for(auto i : numery){ if(zaznaczone[i]){ nowy = Query(i); zaznaczone[i] = 0; jeden.pb(i); } } for(int i=licznik;i<numery.size();i++){ dwa.pb(numery[i]); } rek(jeden); rek(dwa); return; } void Solve(int n) { //Query(x) // Answer(a,b) vector<int> vect; for(int i=1;i<=2*n;i++){ vect.pb(i); } rek(vect); for(auto i : wyniki){ Answer(i.st,i.nd); } }
#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...