Submission #1209864

#TimeUsernameProblemLanguageResultExecution timeMemory
1209864andrej246Sphinx's Riddle (IOI24_sphinx)C++20
10 / 100
171 ms1452 KiB
#include "sphinx.h" #include <bits/stdc++.h> using namespace std; #define NL "\n" #define EL cout << NL #define FOR(i,n) for (long long i = 0; i < (n); i++) #define FORS(i,s,n) for (long long i = (s); i < (n); i++) #define FORR(i,n) for (long long i = (n)-1; i >= 0; i--) #define PRINTV(v) for (auto a: v) {cout << a << " ";} EL; #define PRINTVV(v) for (auto a: v) {PRINTV(a);} #define f first #define s second #define all(v) (v).begin(),(v).end() typedef vector<int> vi; typedef long long ll; typedef vector<ll> vl; typedef vector<vl> vvl; typedef pair<ll,ll> pl; typedef vector<pl> vpl; typedef vector<vpl> vvpl; void dfs(ll u, vl& visited, vvl& g) { visited[u] = true; for (auto v: g[u]) { if (visited[v]) continue; dfs(v,visited,g); } } std::vector<int> find_colours(int n, std::vector<int> x, std::vector<int> y) { vl adj(n); ll m = x.size(); vvl g(n); FOR(i,m) { adj[x[i]] = y[i]; adj[y[i]] = x[i]; g[x[i]].push_back(y[i]); g[y[i]].push_back(x[i]); } vector<int> ans(n); FOR(u,n) { ll v = adj[u]; FOR(c,n) { vi e(n,n); e[u] = -1; e[v] = c; ll r = perform_experiment(e); ll target = 1; vl visited(n); visited[u] = visited[v] = 1; FOR(i,n) { if (visited[i]) continue; target++; dfs(i,visited,g); } if (r == target) { ans[u] = c; 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...