Submission #1359095

#TimeUsernameProblemLanguageResultExecution timeMemory
1359095argsxCoreputer (IOI23_coreputer)C++20
50 / 100
0 ms412 KiB
#include "coreputer.h"
#include<bits/stdc++.h>
using namespace std;
int a[20];
vector<int> s;
vector<int> x;
map<vector<int>,int> mp;
int find(vector<int> vc){
    if(mp.find(vc)!=mp.end())return mp[vc];
    return mp[vc]=run_diagnostic(vc);
}
std::vector<int> malfunctioning_cores(int N) {
    int ch=-1;
    int cnt=0;
    int l=1,r=N;
    int va;
    while(l<r){
        s.clear();
        int mid=(l+r)/2;
        for(int i=0;i<mid;i++){
            s.push_back(i);
        }
        int val=find(s);
        if(val>=0)va=val,r=mid;
        else l=mid+1;
    }
    l--;
    a[l]=1;
    //cout << l;
    r=-1;
    if(l!=N-1){
    for(int i=l+1;i<N;i++){
        s.clear();
        for(int j=0;j<l;j++){
            s.push_back(j);
        }
        if(a[i]==1)continue;
        s.push_back(i);
        int val=find(s);
        if(val==1 || val==0){
            if(r==-1)r=i;
            a[i]=1;
        }
    }
    for(int i=0;i<l;i++){
        s.clear();
        if(a[i]==1)continue;
        s.push_back(i);
        for(int j=r+1;j<N;j++){
            s.push_back(j);
        }
        int val=find(s);
        if(val==1 || val==0)a[i]=1;
    }
}
s.clear();
    for(int i=0;i<N;i++){
        if(a[i])s.push_back(1);
        else s.push_back(0);
    }
    return s;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...