Submission #672057

#TimeUsernameProblemLanguageResultExecution timeMemory
672057Waratpp123Rarest Insects (IOI22_insects)C++17
10 / 100
339 ms328 KiB
#include "insects.h"
#include<bits/stdc++.h>
using namespace std;
int cnt[2050],ch[2050],mi=2050;
int min_cardinality(int N) {
    int i,j,now,s=-1,ans=1;
    for(i=0;i<N;i++){
        move_inside(i);
    }
    int mx=press_button();
    for(i=0;i<N;i++){
        move_outside(i);
    }
    if(mx*mx<=N){
        while(1){
        now=0;
        for(i=0;i<N;i++){
            if(ch[i]==1) continue;
            move_inside(i);
            ch[i]=1;
            if(press_button()==ans) {
                now++;
                continue;
            }
            move_outside(i);
            ch[i]=0;
        }
        if(s==-1){
            s=now;
            ans++;
        }else{
            if(s==now) ans++,s=now;
            else return ans-1;
        }
        }
    }else{
        for(i=0;i<N;i++){
            now=0;
            if(ch[i]!=0) continue;
            move_inside(i);
            ch[i]=i+N;
            now++;
            for(j=0;j<N;j++){
                if(j==i||ch[j]!=0) continue;
                move_inside(j);
                if(press_button()==now+1){
                    ch[j]=i+N;
                    now++;
                }else{
                    move_outside(j);
                }
            }
            for(j=0;j<N;j++){
                if(ch[j]==i+N) move_outside(j);
            }
            mi=min(mi,now);
        }
        return mi;

    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...