Submission #777520

#TimeUsernameProblemLanguageResultExecution timeMemory
777520alexander707070Rarest Insects (IOI22_insects)C++17
0 / 100
1 ms464 KiB
#include<bits/stdc++.h> #include "insects.h" #define MAXN 2007 using namespace std; int n,last,cnt,ans,pt; vector<int> diff,s; int l[MAXN],r[MAXN],br[MAXN]; bool used[MAXN],in[MAXN]; vector< pair<int,int> > qr; int lg(int x){ if(x==1)return 0; return lg(x/2)+1; } int min_cardinality(int N){ n=N; for(int i=0;i<n;i++){ move_inside(i); diff.push_back(i); if(press_button()>1){ move_outside(i); diff.pop_back(); } } for(int i:diff){ used[i]=true; br[i]=1; move_outside(i); } for(int i=0;i<n;i++){ if(!used[i]){ l[i]=-1; r[i]=int(diff.size()); s.push_back(i); } } for(int i=0;i<20;i++){ qr.clear(); for(int f:s){ qr.push_back({(l[f]+r[f])/2,f}); } sort(qr.begin(),qr.end()); pt=0; for(int f=0;f<qr.size();f++){ while(pt<=qr[f].first){ move_inside(diff[pt]); pt++; } move_inside(qr[f].second); in[qr[f].second]=( press_button() == pt ); move_outside(qr[f].second); } for(int f=pt-1;f>=0;f--){ move_outside(diff[f]); } for(int f:s){ if(in[f]){ r[f]=(l[f]+r[f])/2; }else{ l[f]=(l[f]+r[f])/2; } } } for(int i:s){ if(r[i]==diff.size())cout<<1/0; br[diff[r[i]]]++; } ans=n; for(int i:diff){ ans=min(ans,br[i]); } return ans; }

Compilation message (stderr)

insects.cpp: In function 'int min_cardinality(int)':
insects.cpp:51:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |         for(int f=0;f<qr.size();f++){
      |                     ~^~~~~~~~~~
insects.cpp:75:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   75 |         if(r[i]==diff.size())cout<<1/0;
      |            ~~~~^~~~~~~~~~~~~
insects.cpp:75:37: warning: division by zero [-Wdiv-by-zero]
   75 |         if(r[i]==diff.size())cout<<1/0;
      |                                    ~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...