Submission #797449

#TimeUsernameProblemLanguageResultExecution timeMemory
797449penguinmanRarest Insects (IOI22_insects)C++17
0 / 100
1 ms208 KiB
#include "insects.h" #include <bits/stdc++.h> using std::cin; using std::cout; using std::endl; using std::vector; using std::string; using ll = long long; using vi = vector<ll>; using vii = vector<vi>; using pii = std::pair<ll,ll>; constexpr ll mod = 1'000'002'022; #define rep(i,j,k) for(ll i=ll(j); i<ll(k); i++) #define REP(i,j,k) for(ll i=ll(j); i<=ll(k); i++) #define per(i,j,k) for(ll i=ll(j); i>=ll(k); i--) #define all(a) a.begin(),a.end() #define pb emplace_back #define ln "\n" int min_cardinality(int N) { vi distinct; rep(i,0,N){ move_inside(i); if(press_button() == 1) distinct.pb(i); else move_outside(i); } for(auto el: distinct) move_outside(el); std::set<ll> inside, outside; rep(i,0,N) outside.insert(i); ll left = 0, right = N/distinct.size()+1; while(left+1 < right){ ll mid = (left+right)/2; { vi rm; for(auto el: outside){ move_inside(el); if(press_button() > mid) move_outside(el); else{ inside.insert(el); rm.pb(el); } } for(auto el: rm) outside.erase(el); if(mid*distinct.size() == inside.size()){ inside.clear(); left = mid; } else{ right = mid; outside.clear(); for(auto el: inside) move_outside(el); std::swap(outside, inside); } } } return left; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...