# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
988497 | cnn008 | Rarest Insects (IOI22_insects) | C++17 | 3021 ms | 344 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "bits/stdc++.h"
using namespace std;
#include "insects.h";
#ifdef N_N_C
#include "debug.h"
#else
#define cebug(...) "Arya"
#endif
#define ll long long
const int N=1e5+5;
const int mod=1e9+7;
int cad,vis[1005],type;
set <int> s;
void in(int i){
s.insert(i);
move_inside(i);
}
void out(int i){
s.erase(s.find(i));
move_outside(i);
}
int min_cardinality(int n){
for(int i=0; i<n; i++){
in(i);
if(press_button()>cad) cad++;
else out(i);
}
for(auto i:s) out(i);
if(cad<=30){
for(int i=0; i<n; i++){
if(!vis[i]){
vis[i]=++type;
move_inside(i);
for(int j=i+1; j<n; j++){
move_inside(j);
int val=press_button();
if(val==2) vis[j]=type;
move_outside(j);
}
move_outside(i);
}
}
map <int,int> mp;
for(int i=0; i<n; i++) mp[vis[i]]++;
int ans=INT_MAX;
for(auto [x,y]:mp) ans=min(ans,y);
return ans;
}else{
int cnt=0;
for(int i=0; i<n; i++){
if(!vis[i]){
cnt++;
vis[i]=1;
move_inside(i);
int sz=1;
for(int j=i+1; j<n; j++){
move_inside(j);
if(press_button()>sz){
sz++;
vis[j]=1;
}else move_outside(j);
}
if(press_button()<cad) return cnt;
move_outside(i);
for(int j=i+1; j<n; j++) if(vis[j]) move_outside(j);
}
}
}
}
/** /\_/\
* (= ._.)
* / >💖 \>💕
**/
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |