Submission #727783

#TimeUsernameProblemLanguageResultExecution timeMemory
727783vjudge1Rarest Insects (IOI22_insects)C++17
100 / 100
59 ms428 KiB
#include "insects.h" #include<bits/stdc++.h> #define eb emplace_back int min_cardinality(int N) { std::vector<int>machine; std::vector<bool>inside(N,false),fixed(N,false); for(int i=0;i<N;++i){ move_inside(i); if(press_button()==2){ move_outside(i); } else{ inside[i]=fixed[i]=true; machine.eb(i); } } std::vector<int>id; for(int i=0;i<N;i+=2){ id.eb(i); } for(int i=1;i<N;i+=2){ id.eb(i); } int uni=machine.size(); int l=1,r=N/uni; while(l<r){ int mid=(l+r+1)>>1; for(auto to:id){ int i=to; if(fixed[i]) continue; if(uni*mid==machine.size()) break; move_inside(i); if(press_button()>mid){ move_outside(i); } else{ inside[i]=true; machine.eb(i); } } if(uni*mid==machine.size()){ l=mid; for(int i=0;i<N;++i){ if(inside[i]) fixed[i]=true; } } else{ r=mid-1; for(int i=0;i<N;++i){ if(!inside[i]){ fixed[i]=true; } else if(!fixed[i]){ move_outside(i); inside[i]=false; machine.pop_back(); } } } } return l; }

Compilation message (stderr)

insects.cpp: In function 'int min_cardinality(int)':
insects.cpp:32:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |             if(uni*mid==machine.size()) break;
      |                ~~~~~~~^~~~~~~~~~~~~~~~
insects.cpp:42:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |         if(uni*mid==machine.size()){
      |            ~~~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...