Submission #1170397

#TimeUsernameProblemLanguageResultExecution timeMemory
1170397bbartekMinerals (JOI19_minerals)C++20
0 / 100
0 ms424 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; double fi = 1.61; void rek(vector<int> num1,vector<int> num2,bool parzystosc,bool obrot){ if(num1.size() == 1){ //cout<<num1.size()<<" "<<num2.size()<<" "<<parzystosc<<"\n"; wyniki.pb({num1[0],num2[0]}); return; } vector<int> x1,x2,y1,y2; int dlu = num1.size(),nowy,stary; if(parzystosc == 0){ for(int i=0;i<dlu-(double)(dlu/fi);i++){ stary = Query(num1[i]); x1.pb(num1[i]); } for(int i=dlu-(double)(dlu/fi);i<dlu;i++){ y1.pb(num1[i]); } } else{ for(int i=0;i<dlu/fi;i++){ x1.pb(num1[i]); } for(int i=dlu/fi;i<dlu;i++){ stary = Query(num1[i]); y1.pb(num1[i]); } } for(int i=0;i<dlu;i++){ nowy = Query(num2[i]); if(obrot){ if(nowy == stary){ y2.pb(num2[i]); } else{ x2.pb(num2[i]); } } else{ if(nowy == stary){ x2.pb(num2[i]); } else{ y2.pb(num2[i]); } } stary = nowy; } rek(x1,x2,0,!obrot); rek(y1,y2,1,!obrot); return; } void Solve(int n) { //Query(x) // Answer(a,b) vector<int> vect1,vect2; int a=0,b; for(int i=1;i<=2*n;i++){ b = Query(i); if(b != a) vect1.pb(i); else vect2.pb(i); a = b; } rek(vect1,vect2,0,1); for(int i=0;i<n;i++){ Answer(wyniki[i].st,wyniki[i].nd); } } /* int main(){ Solve(4); return 0; } */
#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...