제출 #727779

#제출 시각아이디문제언어결과실행 시간메모리
727779vjudge1드문 곤충 (IOI22_insects)C++17
99.95 / 100
54 ms336 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); } } int uni=machine.size(); int l=1,r=N/uni; while(l<r){ int mid=(l+r+1)>>1,k=0; for(int i=0;i<N;++i){ if(fixed[i]) continue; if(uni*mid==machine.size()) break; move_inside(i); k++; if(press_button()>mid){ move_outside(i); k--; } 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; }

컴파일 시 표준 에러 (stderr) 메시지

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