Submission #736536

#TimeUsernameProblemLanguageResultExecution timeMemory
736536AdamGS드문 곤충 (IOI22_insects)C++17
82.27 / 100
120 ms400 KiB
#include "insects.h" #include<bits/stdc++.h> using namespace std; #define rep(a, b) for(int a = 0; a < (b); ++a) #define st first #define nd second #define pb push_back #define all(a) a.begin(), a.end() int min_cardinality(int n) { vector<int>A, B; rep(i, n) { move_inside(i); if(press_button()==1) A.pb(i); else { B.pb(i); move_outside(i); } } for(auto i : A) move_outside(i); int po=0, ko=n/(int)A.size()-1; stack<pair<int,int>>S; S.push({-1, -1}); mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count()); rep(i, A.size()) swap(A[i], A[rng()%(i+1)]); int ile=0; while(po<ko) { int sr=po+(ko-po)/4+1; while(S.top().st>sr) { B.pb(S.top().nd); move_outside(S.top().nd); --ile; S.pop(); } vector<int>tmp; rep(i, B.size()) swap(B[i], B[rng()%(i+1)]); for(auto i : B) { move_inside(i); ++ile; int x=press_button(); if(x>sr) { move_outside(i); --ile; tmp.pb(i); continue; } S.push({x, i}); } B=tmp; if(ile==(int)A.size()*sr) po=sr; else ko=sr-1; } return po+1; }

Compilation message (stderr)

insects.cpp: In function 'int min_cardinality(int)':
insects.cpp:4:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    4 | #define rep(a, b) for(int a = 0; a < (b); ++a)
      |                                    ^
insects.cpp:24:3: note: in expansion of macro 'rep'
   24 |   rep(i, A.size()) swap(A[i], A[rng()%(i+1)]);
      |   ^~~
insects.cpp:4:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    4 | #define rep(a, b) for(int a = 0; a < (b); ++a)
      |                                    ^
insects.cpp:35:5: note: in expansion of macro 'rep'
   35 |     rep(i, B.size()) swap(B[i], B[rng()%(i+1)]);
      |     ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...