Submission #212159

#TimeUsernameProblemLanguageResultExecution timeMemory
212159M0REDAChameleon's Love (JOI20_chameleon)C++14
0 / 100
26 ms512 KiB
#include <bits/stdc++.h> #include "chameleon.h" #define debug(x) cerr << #x << " = " << x << ", "; #define ll long long #define pb push_back using namespace std; #define FAST_IO \ ios_base::sync_with_stdio(false); \ cin.tie(NULL); \ cout.tie(NULL); void Solve(int N) { vector<vector<int>> v(2 * N + 1); vector<int> graph(2 * N + 1, -1); for (int i = 1; i <= 2 * N; i++) { for (int j = i + 1; j <= 2 * N && v[i].size() < 3; j++) { vector<int> p; p.pb(i); p.pb(j); int z = Query(p); // debug(i); // debug(j); // debug(z); // cerr << endl; // cerr << "======================" << endl; if (z == 1) { v[i].pb(j); v[j].pb(i); } } } // for (auto a : v) // { // for (auto b : a) // { // cerr << b << " "; // } // cerr << endl; // } for (int i = 1; i <= 2 * N; i++) { if (v[i].size() == 1) { graph[i] = v[i][0]; continue; } for (int j = 0; j < 3 && graph[i] == -1; j++) { for (int k = j + 1; k < 3; k++) { vector<int> p; p.pb(i); p.pb(v[i][j]); p.pb(v[i][k]); if (Query(p) == 1) { graph[i] = v[i][3 - j - k]; break; } } } } for (int i = 1; i <= 2 * N; i++) { if (v[i].size() == 1) { // debug(i); // debug(graph[i]); // cerr << endl; // cerr << "======================" << endl; if (i < graph[i]) Answer(i, graph[i]); continue; } if (v[i].size()) { assert(false); } for (int j = 0; j < 3; j++) { if (v[i][j] == graph[i] || i == graph[v[i][j]]) { continue; } if (i < v[i][j]) Answer(i, v[i][j]); break; } } }
#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...