제출 #1320488

#제출 시각아이디문제언어결과실행 시간메모리
1320488BigBadBully드문 곤충 (IOI22_insects)C++20
47.51 / 100
65 ms592 KiB
#include "insects.h" #include <bits/stdc++.h> using namespace std; int min_cardinality(int n) { int dst = 0; vector<int> gurt(n); for(int i = 0; i < n; i++) gurt[i] = i; srand(time(0)); random_shuffle(gurt.begin(),gurt.end()); set<int> dists; { set<int> hier; for (int i :gurt) { move_inside(i); int val = press_button(); if(val>1) move_outside(i); else dst++,dists.insert(i),hier.insert(i); } for(int x: hier) if(!dists.count(x)) move_outside(x); } vector<int> lst(n,0); function<bool(int)> check = [&](int x) { if(x>n)return true; if(x==0)return false; int sz = dst; set<int> hier; for(int i :gurt) { if(dists.count(i) || lst[i]>=x)continue; move_inside(i); int val = press_button(); if(val>x) move_outside(i),lst[i] = max(lst[i],x); else sz++,hier.insert(i); } for(int y: hier) if(!dists.count(y)) move_outside(y); return sz < x*dst; }; int l = 1,r = n/dst; while(r-l) { int mid = l+r+1>>1; if(check(mid)) r = mid-1; else l = mid; } return l; }

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

insects.cpp: In function 'int min_cardinality(int)':
insects.cpp:11:19: warning: 'void std::random_shuffle(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<int*, vector<int> >]' is deprecated: use 'std::shuffle' instead [-Wdeprecated-declarations]
   11 |     random_shuffle(gurt.begin(),gurt.end());
      |     ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/algorithm:61,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51,
                 from insects.cpp:2:
/usr/include/c++/13/bits/stl_algo.h:4581:5: note: declared here
 4581 |     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
      |     ^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...