Submission #1233108

#TimeUsernameProblemLanguageResultExecution timeMemory
1233108CELD_07Rarest Insects (IOI22_insects)C++20
56.67 / 100
45 ms436 KiB
#include "insects.h" #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include<bits/stdc++.h> #include<ext/pb_ds/assoc_container.hpp> typedef long long ll; typedef long double ld; #define endl "\n" #define vll vector<ll> #define sd second #define ft first #define all(x) x.begin(),x.end() #define allr(x) x.rbegin(),x.rend() #define pll pair<ll, ll> #define mod 1000000007 #define _set tree<pll, null_type, less<pll>, rb_tree_tag, tree_order_statistics_node_update> #define inf (ll)1e15 #define db(x) cout<<#x<<" : "<<x<<endl; #define PRESICION(x) cout.setf(ios::fixed,ios::floatfield); cout.precision(x); using namespace std; using namespace __gnu_pbds; ll dx[]={1, -1, 0, 0}; ll dy[]={0, 0, 1, -1}; inline ll sm(ll a, ll b){ return ((a%mod)+(b%mod))%mod; } inline ll ml(ll a, ll b){ return ((a%mod)*(b%mod))%mod; } inline ll rs(ll a, ll b){ return ((a%mod)-(b%mod)+mod)%mod; } ll bpow(ll a , ll b) { if (b==0)return 1; if (b%2!=0)return ((bpow(a, b-1)%mod)*(a%mod))%mod; ll r=bpow (a ,b/ 2) ; return ((r%mod)*(r%mod))%mod; } int min_cardinality(int N){ ll tl=0, tr=N, r=N, o=0; set<ll> s, s1; for(int i=0; i<N; i++){ move_inside(i); o++; if(press_button()>1){move_outside(i);o--;} } tr=N/o; while(tl<=tr){ ll tm=(tl+tr)/2; for(int i=0; i<N; i++){ if(!s.empty() && s.lower_bound(i)!=s.end() && *s.lower_bound(i)==i)continue; move_inside(i); if(press_button()>tm){move_outside(i);} else {s.insert(i);s1.insert(i);} ll o1=s.size(); if(o1==o*tm)break; } ll o1=s.size(); if(o1<o*tm){tr=tm-1; for(auto y: s1){move_outside(y); s.erase(s.lower_bound(y));} set<ll>().swap(s1); } else {tl=tm+1;r=tm;set<ll>().swap(s1);} } return r; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...