Submission #1232363

#TimeUsernameProblemLanguageResultExecution timeMemory
1232363clemmy14Rarest Insects (IOI22_insects)C++20
0 / 100
0 ms408 KiB
#include<bits/stdc++.h> #include "insects.h" using namespace std; int n, t, sofarl; bool up=false; set<int> dontUse; vector<int> machine; bool check(int k) { if(up) { for(auto x : machine) dontUse.insert(x); } else { set<int> used; for(auto x : machine) used.insert(x); for(int i=0; i<n; i++) if(!used.count(i)) dontUse.insert(i); for(int i=sofarl*k; i<machine.size(); i++) { move_outside(i); machine.pop_back(); } } for(int i=0; i<n; i++) if(!dontUse.count(i)) { machine.push_back(i); move_inside(i); if(press_button() > k) { machine.pop_back(); move_outside(i); } } return machine.size() == k*t; } int lastTrue(int lo, int hi) { lo--; while(lo < hi) { sofarl=lo; int mid = lo+(hi-lo+1)/2; //cout << lo << ' ' << mid << ' ' << hi << endl; if(check(mid)){ lo=mid; up=false; } else { hi=mid-1; up=true; } } return lo; } int min_cardinality(int N) { n=N; for(int i=0; i<N; i++) { machine.push_back(i); move_inside(i); if(press_button() == 1) continue; machine.pop_back(); move_outside(i); } t=machine.size(); return lastTrue(1, N/t)+1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...