Submission #1225607

#TimeUsernameProblemLanguageResultExecution timeMemory
1225607PagodePaivaSphinx's Riddle (IOI24_sphinx)C++20
10 / 100
42 ms1188 KiB
#include "sphinx.h"
#include<bits/stdc++.h>

using namespace std;

const int N = 256;
int cor[N];
vector <int> g[N];
int mark[N];

void dfs(int v){
    mark[v] = 1;
    for(auto x : g[v]){
        if(mark[x])
            continue;
        dfs(x);
    }
}

std::vector<int> find_colours(int n, std::vector<int> X, std::vector<int> Y) {
    for(int i = 0;i < X.size();i++){
        g[X[i]].push_back(Y[i]);
        g[Y[i]].push_back(X[i]);
    }
    for(int i = 0;i < n;i++){
        int v = i, x = g[i][0];
        vector <int> qr;
        for(int i = 0;i < n;i++){
            qr.push_back(n);
        }
        qr[v] = -1;
        memset(mark, 0, sizeof mark);
        mark[v] = 1;
        mark[x] = 1;
        int comp = 0;
        for(int j = 0;j < n;j++){
            if(mark[j] == 0){
                comp++;
                dfs(j);
            }
        }
        for(int j = 0;j < n;j++){
            qr[x] = j;
            int check = perform_experiment(qr);
            if(check != comp + 2){
                cor[v] = j;
                break;
            }
        }
    }
    vector <int> ans;
    for(int i = 0;i < n;i++){
        ans.push_back(cor[i]);
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...