#include "monster.h"
#include <bits/stdc++.h>
using namespace std;
unordered_map<long long int, int> queries;
bool Q(int a, int b) {
//return Query(a, b);
int qn = (((long long)a) * 100000) + b;
if(queries.find(qn) == queries.end()) {
queries[qn] = Query(a, b);
}
return queries[qn];
}
vector<int> Solve(int N) {
vector<int> monsters(N);
vector<int> w1;
vector<int> l1;
for(int i = 0; i < N; i++) {
int wins = 0;
for(int j = 0; j < N; j++) {
if(i != j) {
if(Q(i, j))
wins++;
}
}
//cout << wins << " ";
if(wins == 1)
w1.push_back(i);
else if(wins == N - 2)
l1.push_back(i);
else
monsters[wins] = i;
}
if(N == 4) {
}
if(Q(w1[0], monsters[2])) {
monsters[1] = w1[0];
monsters[0] = w1[1];
}
else {
monsters[0] = w1[0];
monsters[1] = w1[1];
}
if(Q(l1[0], monsters[N - 3])) {
monsters[N - 1] = l1[0];
monsters[N - 2] = l1[1];
}
else {
monsters[N - 2] = l1[0];
monsters[N - 1] = l1[1];
}
vector<int> ret(N);
for(int i = 0; i < monsters.size(); i++) {
//cout << monsters[i];
ret[monsters[i]] = i;
}
return ret;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |