Submission #1221717

#TimeUsernameProblemLanguageResultExecution timeMemory
1221717TrustfulcomicMonster Game (JOI21_monster)C++20
10 / 100
69 ms1780 KiB
#include "monster.h" #include <bits/stdc++.h> using namespace std; typedef pair<int,int> ii; map<ii, bool> mem; bool my_query(int a, int b) { if (mem.find({a,b}) != mem.end()) { return mem[{a,b}]; } else if (mem.find({b,a}) != mem.end()) { return !mem[{b,a}]; } else { bool res = Query(a, b); mem[{a,b}] = res; return res; } } std::vector<int> Solve(int N) { std::vector<int> T(N); vector<int> up; vector<int> down; for (int i = 0; i < N; i++) { int wins = 0; for (int j = 0; j<N; j++) { if (i == j) continue; if (my_query(i,j)) wins++; } if (wins == N-2) { up.push_back(i); } else if (wins == 1) { down.push_back(i); } else { T[i] = wins; } } if (my_query(up[0], up[1])) { T[up[0]] = N-2; T[up[1]] = N-1; } else { T[up[0]] = N-1; T[up[1]] = N-2; } if (my_query(down[0], down[1])) { T[down[0]] = 0; T[down[1]] = 1; } else { T[down[0]] = 1; T[down[1]] = 0; } return T; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...