제출 #1177665

#제출 시각아이디문제언어결과실행 시간메모리
1177665madamadam3스핑크스 (IOI24_sphinx)C++20
0 / 100
0 ms420 KiB
#include "sphinx.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; using vi = vector<int>; using vl = vector<ll>; using vvi = vector<vi>; using vvl = vector<vl>; int N, M; vvi adj; vi G; int queryTwo(int a, int b, int colourA, int colourB) { vi E(N, N); E[a] = colourA; E[b] = colourB; return perform_experiment(E); } int findColour(int a) { if (G[a] != -1) return G[a]; int neighbour = adj[a][0]; int CCs = queryTwo(a, neighbour, -1, -1); for (int colour = 0; colour < N; colour++) { int x1 = queryTwo(a, neighbour, colour, -1); int x2 = queryTwo(a, neighbour, -1, colour); if (CCs == 1 && x1 == 1) { G[a] = G[neighbour] = colour; break; } else if (x1 == 1) { G[neighbour] = colour; } else if (x2 == 1) { G[a] = colour; } } return G[a]; } vi find_colours(int N, vi X, vi Y) { N = N, M = (int) X.size(); adj.assign(N, vi()); for (int i = 0; i < M; i++) { adj[X[i]].push_back(Y[i]); adj[Y[i]].push_back(X[i]); } G.assign(N, -1); int CCs = perform_experiment(vi(N, -1)); if (N == 2) { // 3/100 pts for (int colour = 0; colour < N; colour++) { findColour(0); } return G; } if (N <= 50) { return G; } return G; }
#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...