제출 #1169969

#제출 시각아이디문제언어결과실행 시간메모리
1169969bbartekMinerals (JOI19_minerals)C++20
40 / 100
15 ms3116 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; /* int para[] = {0,1,3,3,1,2,4,4,2}; set<int> zbior; int Query(int x) { if(zbior.count(x)){ zbior.erase(x); } else{ zbior.insert(x); } set<int> aktualny; for(auto i : zbior){ aktualny.insert(para[(i)]); } return aktualny.size(); } void Answer(int a, int b) { //cout<<a<<" "<<b<<"\n"; } */ 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 = -1,nowy,stary = 0; for(auto i : numery){ nowy = Query(i); licznik++; if(nowy == stary){ zaznaczone[i] = 1; } if(2*(licznik+1-nowy) >= numery.size()/2){ stary = nowy; for(int j=0;j<=licznik;j++){ if(zaznaczone[numery[j]]) 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+1;i<numery.size();i++){ dwa.pb(numery[i]); } /* for(auto i : jeden) cout<<i<<" "; cout<<"\n"; for(auto i : dwa) cout<<i<<" "; cout<<"\n"; */ 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...