Submission #58562

#TimeUsernameProblemLanguageResultExecution timeMemory
58562Mamnoon_SiamICC (CEOI16_icc)C++17
0 / 100
331 ms944 KiB
#include "icc.h" #include <bits/stdc++.h> using namespace std; const int maxn = 105; int n; int ok[maxn][maxn]; int ask(int u, int v) { int a[1] = {u}, b[1] = {v}; return query(1, 1, a, b); } int chex(int u) { int a[1] = {u}, b[maxn]; int sz_a = 1, sz_b = 0; for(int i = 1; i <= n; i++) { if(i == u) continue; if(!ok[u][i]) { b[sz_b++] = i; } } if(!sz_b) return 0; return query(sz_a, sz_b, a, b); } int find_another(int u) { for(int i = 1; i <= n; i++) { if(i == u) continue; if(!ok[u][i]) { if(ask(u, i)) { return i; } } } assert(false); } void run(int N) { n = N; while(true) { int u = -1; for(int i = 1; i <= n; i++) { if(chex(i)) { u = i; break; } } assert(u != -1); int v = find_another(u); if(u > v) swap(u, v); setRoad(u, v); ok[u][v] = 1; ok[v][u] = 1; // for(int u = 1; u <= n; u++) { // for(int v = u + 1; v <= n; v++) { // if(!ok[u][v]) { // if(ask(u, v)) { // setRoad(u, v); // ok[u][v] = 1; // ok[v][u] = 1; // goto hell; // } // } // } // } // assert(false); // hell : ; } }
#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...