Submission #424494

#TimeUsernameProblemLanguageResultExecution timeMemory
424494milleniumEeeeChameleon's Love (JOI20_chameleon)C++17
40 / 100
26 ms456 KiB
#ifndef EVAL #include "grader.cpp" #endif #include "chameleon.h" #include <bits/stdc++.h> #define fr first #define sc second #define pii pair<int, int> #define pb push_back #define szof(s) (int)s.size() #define all(s) s.begin(), s.end() #define ll long long using namespace std; const int MAXN = 505; // Query(p) | p is vector<int> // Answer(a, b) int n; bool found[MAXN * 2]; vector <int> cand[MAXN * 2]; vector <int> g[MAXN * 2]; bool exist(vector <int> &vec, int x) { for (int el : vec) { if (el == x) { return true; } } return false; } void make_edge(int x, int y) { g[x].pb(y); g[y].pb(x); } pii get_para(int x, int y) { if (x > y) { swap(x, y); } return {x, y}; } int ans[MAXN * 2]; bool f[MAXN * 2][MAXN * 2]; void Solve(int N) { n = N; // creating tree for (int i = 1; i <= n * 2; i++) { for (int j = 1; j <= n * 2; j++) { if (i != j) { vector <int> ask = {i, j}; if (Query(ask) == 1) { cand[i].pb(j); } } } if (szof(cand[i]) == 1) { int x = i, y = cand[i][0]; ans[x] = y; ans[y] = x; } } for (int i = 1; i <= n * 2; i++) { if (szof(cand[i]) == 3) { int a = cand[i][0]; int b = cand[i][1]; int c = cand[i][2]; int to = -1; if (Query({i, a, b}) == 1) { f[i][c] = f[c][i] = 1; to = c; } else if (Query({i, a, c}) == 1) { f[i][b] = f[b][i] = 1; to = b; } else { f[i][a] = f[a][i] = 1; to = a; } } } for (int i = 1; i <= n * 2; i++) { if (!ans[i]) { set <int> st; for (int el : cand[i]) { st.insert(el); } for (int j = 1; j <= n * 2; j++) { if (f[i][j]) { st.erase(j); } } int need = *st.begin(); ans[i] = need; ans[need] = i; } } set <pii> omg; for (int i = 1; i <= n * 2; i++) { omg.insert(get_para(i, ans[i])); } for (auto [x, y] : omg) { Answer(x, y); } } /* anti case: 4 0 0 0 0 1 1 1 1 1 4 2 3 2 1 3 4 8 7 6 5 2 4 3 1 */

Compilation message (stderr)

chameleon.cpp: In function 'void Solve(int)':
chameleon.cpp:74:8: warning: variable 'to' set but not used [-Wunused-but-set-variable]
   74 |    int to = -1;
      |        ^~
#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...