제출 #1061534

#제출 시각아이디문제언어결과실행 시간메모리
1061534jamjanekRarest Insects (IOI22_insects)C++17
100 / 100
44 ms868 KiB
#include "insects.h" #include<bits/stdc++.h> using namespace std; int k; void wyczysc(set<int>&sett){ for(auto j: sett) move_outside(j); sett.clear(); } int min_cardinality(int n) { set<int>srodek; vector<int>pozostale; move_inside(0); srodek.insert(0); k = 1; for(int i=1;i<n;i++){ move_inside(i); if(press_button()>1){ pozostale.push_back(i); move_outside(i); } else{ k++; srodek.insert(i); } } int wys = 1; //k*5>=n to mozna od razu zrobic if(k*5>=n){ for(int i=0;i<4;i++){ int k1 = 0; wyczysc(srodek); vector<int>jeszcze; for(auto j: pozostale)jeszcze.push_back(j); pozostale.clear(); for(auto j: jeszcze){ move_inside(j); if(press_button()>1){ pozostale.push_back(j); move_outside(j); } else{ k1++; srodek.insert(j); } } if(k1==k)wys++; else return wys; } return wys; } n-=k*wys; while(n>=k){ int k1 = 0; int srodekH = (n+2*k-1)/(2*k); wyczysc(srodek); vector<int>nadmiar; vector<int>jeszcze; for(auto j: pozostale)jeszcze.push_back(j); pozostale.clear(); for(auto j: jeszcze){ move_inside(j); if(press_button()>srodekH){ nadmiar.push_back(j); move_outside(j); } else{ srodek.insert(j); k1++; } } if(k1==k*srodekH){ wyczysc(srodek); n-=k*srodekH; wys+=srodekH; pozostale = nadmiar; } else{ for(auto j: srodek){ pozostale.push_back(j); } wyczysc(srodek); n = pozostale.size(); } } return wys; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...