Submission #1209692

#TimeUsernameProblemLanguageResultExecution timeMemory
1209692trimkusSphinx's Riddle (IOI24_sphinx)C++20
24 / 100
36 ms1176 KiB
#include "sphinx.h" #include <bits/stdc++.h> using namespace std; vector<int> E; const int MAXN = 250; vector<vector<int>> adj(MAXN); int expected(int N) { set<int> st; for (int i = 0; i < N; ++i) { if (E[i] == -1) continue; st.insert(E[i]); } return (int)st.size(); } std::vector<int> find_colours(int N, std::vector<int> X, std::vector<int> Y) { int M = (int)X.size(); for (int i = 0; i < M; ++i) { adj[X[i]].push_back(Y[i]); adj[Y[i]].push_back(X[i]); } E = vector<int>(N); vector<int> F(N); for (int i = 0; i < N; ++i) { int left = 0, right = N - 1; while (left < right) { // cerr << "NOW CHECKING INDEX #" << i << " , with interval [" << left << " ; " << right << "]\n"; for (auto& u : E) u = N; int mid = (left + right) / 2; int pos = left; int j = 0; while (pos <= mid) { if (j == i) { j++; continue; } E[j++] = pos++; } // cout << "HERE!" << endl; E[i] = -1; int exp = expected(N); if (exp == perform_experiment(E)) { right = mid; } else { left = mid + 1; } } F[i] = right; } return F; }
#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...