Submission #1204327

#TimeUsernameProblemLanguageResultExecution timeMemory
1204327perekopskadSphinx's Riddle (IOI24_sphinx)C++20
10 / 100
154 ms1456 KiB
#include "sphinx.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

#define fr(i, l, r) for(ll (i) = l; (i) <= r; (i)++)
#define frb(i, r, l) for(ll (i) = r; (i) >= l; (i)--)
#define pb push_back
#define el '\n'

ll const N = 500 + 10;

vector <ll> g[N];
bool used[N];

void dfs(ll v) {
    used[v] = 1;
    for(ll u : g[v]) 
        if(!used[u])
            dfs(u);
}

std::vector<int> find_colours(int N, std::vector<int> X, std::vector<int> Y) {
    fr(i, 0, X.size() - 1) {
        ll u = X[i], v = Y[i];
        g[u].pb(v);
        g[v].pb(u);
    }

    vector <int> ans(N);

    fr(v, 0, N - 1) {
        ll u = g[v][0];
        fr(col, 0, N - 1) {
            vector <int> c(N, N);
            c[v] = -1;
            c[u] = col;
            ll res = perform_experiment(c);

            fill(used, used + N, 0);
            used[v] = used[u] = 1;

            ll cnt = 0;
            fr(i, 0, N - 1) {
                if(used[i])
                    continue;
                cnt++;
                dfs(i);
            }

            if(res == cnt + 1) {
                ans[v] = col;
                break;
            }
        }
    }

    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...