Submission #1061469

#TimeUsernameProblemLanguageResultExecution timeMemory
1061469TlenekWodoruRarest Insects (IOI22_insects)C++17
100 / 100
39 ms856 KiB
#include<bits/stdc++.h> #include "insects.h" using namespace std; bool zaj[2009]; int min_cardinality(int n) { int r=0; vector<int>U; for(int i=0;i<n;i++) { move_inside(i); int u=press_button(); if(u>1) { move_outside(i); U.push_back(i); } else { zaj[i]=1; r++; } } int w=1; if((int)U.size()==0){return w;} while(true) { if((int)U.size()<r){return w;} int d=(((int)(U.size()+r-1)/r+1)/2); /**cout<<"r="<<r<<" d="<<d<<" w="<<w<<endl; cout<<"U={"; for(int u : U) { cout<<u<<","; } cout<<"}"<<endl;**/ vector<int>A,B; for(int i=0;i<n;i++) { if(zaj[i]){continue;} move_inside(i); int u=press_button(); if(u>w+d) { move_outside(i); B.push_back(i); } else { A.push_back(i); } } if((int)A.size()==d*r) { w+=d; for(int u : A) { zaj[u]=1; } U=B; } else { for(int u : A) { move_outside(u); } for(int u : B) { zaj[u]=1; } U=A; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...