Submission #725652

#TimeUsernameProblemLanguageResultExecution timeMemory
725652aykhnRarest Insects (IOI22_insects)C++17
25 / 100
311 ms408 KiB
#include <bits/stdc++.h> #include "insects.h" using namespace std; typedef long long ll; #define OPT ios_base::sync_with_stdio(0); \ cin.tie(0); \ cout.tie(0) #define pii pair<int,int> #define pll pair<ll,ll> #define all(v) v.begin(), v.end() #define mpr make_pair #define pb push_back #define ts to_string #define fi first #define se second #define inf 0x3F3F3F3F #define infll 0x3F3F3F3F3F3F3F3FLL #define bpc __builtin_popcount #define print(v) for(int i = 0; i < v.size(); i++) cout << v[i] << " "; cout<<endl; int min_cardinality(int n) { int sz = 0; vector<bool> mark(n, 0); for (int i = 0; i < n; i++) { move_inside(i); int x = press_button(); if (x > 1) move_outside(i); else { sz++; mark[i] = true; } } for (int i = 0; i < n; i++) { if (mark[i]) move_outside(i); mark[i] = false; } int mxposs = inf; int m = n; while (mxposs > 1) { mxposs = m/sz; int rn = 0; vector<int> temp; for (int i = 0; i < n; i++) { move_inside(i); int x = press_button(); if (x > mxposs) { move_outside(i); } else { rn++; temp.pb(i); } } for (int i : temp) move_outside(i); if (rn == mxposs * sz) break; m = rn; } return mxposs; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...