Submission #1211919

#TimeUsernameProblemLanguageResultExecution timeMemory
1211919simona1230Rarest Insects (IOI22_insects)C++20
99.89 / 100
15 ms432 KiB
#include "insects.h"
#include <bits/stdc++.h>
using namespace std;

int min_cardinality(int N)
{
    int d=0;
    vector<int> v;
    vector<int> s;
    for(int i=0;i<N;i++)
    {
        move_inside(i);
        int x=press_button();
        if(x==2) s.push_back(i),move_outside(i);
        else v.push_back(i),d++;
    }

    for(int i=0;i<v.size();i++)
        move_outside(v[i]);

        int b=0;
    int ans=1,l=2,r=N/d;
    while(l<=r)
    {
        int m=(l+r)/2;
        vector<int> s1,s2;
        for(int i=0;i<s.size();i++)
        {
            move_inside(s[i]);
            int x=press_button();
            if(x==m+1-ans)
            {
                s1.push_back(s[i]);
                move_outside(s[i]);
            }
            else
            {
                s2.push_back(s[i]);
            }
        }
        for(int i=0;i<s2.size();i++)
            move_outside(s2[i]);

        if(s2.size()==d*(m-ans))
        {
            ans=m;
            s=s1;
            l=m+1;
        }
        else r=m-1,s=s2;
    }

    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...