Submission #1288795

#TimeUsernameProblemLanguageResultExecution timeMemory
1288795vneduCoreputer (IOI23_coreputer)C++17
100 / 100
1 ms404 KiB
#include "coreputer.h"
#include<bits/stdc++.h>
using namespace std;

vector<int> malfunctioning_cores(int n)
{
    vector<int> c;
    c.resize(n);
    int lo=0,hi=n-2,mid,cm=-1,gaugau;
    while(lo<=hi)
    {
        mid=(lo+hi)>>1;
        vector<int> v;
        for(int i=0;i<=mid;++i) v.push_back(i);
        int lst=run_diagnostic(v);
        if(lst!=1) cm=mid,lo=mid+1,gaugau=lst;
        else hi=mid-1;
    }
    ++cm;
//    cerr<<cm<<'\n';
    if(cm==0)
    {
        c[0]=1;
        for(int i=1;i<n;++i) c[i]=0;
        return c;
    }
    c[cm]=1;
    int sum=1;
    for(int i=cm+1;i<n;++i)
    {
        vector<int> v;
        for(int j=0;j<cm;++j) v.push_back(j);
        v.push_back(i);
        if(run_diagnostic(v)==1) c[i]=1;
        else c[i]=0;
        sum+=c[i];
    }
    sum=sum+gaugau;
    for(int i=1;i<cm;++i)
    {
        vector<int> v;
        for(int j=0;j<i;++j) v.push_back(j);
        for(int j=i+1;j<=cm;++j) v.push_back(j);
        if(run_diagnostic(v)==1) c[i]=0;
        else c[i]=1;
        sum-=c[i];
    }
    c[0]=sum;
//    cerr<<"DSADSA\n";
//    for(int i=0;i<n;++i) cerr<<c[i]<<' ';
//    cout<<"DSADSA\n";
    return c;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...