#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |