#include "monster.h"
#include<bits/stdc++.h>
using namespace std;
template<typename T>
using vec = vector<T>;
using ll = long long;
using vll = vec<ll>;
#define pb push_back
std::vector<int> Solve(int N) {
vec<int> ans(N,0);
vec<int> couldBeWeak, couldBeStrong;
for(int i = 0 ; i < N; i++) {
ll winCount = 0;
for(int j = 0; j < N; j++) {
if(i == j) continue;
if(Query(i,j)) winCount++;
}
// cerr << i << " " << winCount << endl;
if(winCount == 1) couldBeWeak.pb(i);
else if(winCount == N-2) couldBeStrong.pb(i);
else ans[i] = winCount;
}
bool test = Query(couldBeWeak[0], couldBeWeak[1]);
ans[couldBeWeak[0]] = 0;
ans[couldBeWeak[1]] = 1;
if(!test) swap(ans[couldBeWeak[0]], ans[couldBeWeak[1]]);
test = Query(couldBeStrong[0], couldBeStrong[1]);
ans[couldBeStrong[0]] = N-2;
ans[couldBeStrong[1]] = N-1;
if(!test) swap(ans[couldBeStrong[0]],ans[couldBeStrong[1]]);
// for(int &x : ans) cerr << x << " ";
// cerr << endl;
return ans;
}
/*
str 0 => wc 1
str 1 => wc 1
str 2 => wc 2
str 3 => wc 3
...
str n-2 => wc n-2
str n-1 => wc n-2
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |