이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "interactive.h"
using namespace std;
vector <int> v,w;
map <int,int> f,poz;
int sol[110],a[110];
int n,i;
/*int ask (int poz){
return a[poz];
}
vector <int> get_pairwise_xor (vector <int> positions){
vector <int> sol;
for (auto it : positions)
for (auto it2 : positions)
sol.push_back(a[it] ^ a[it2]);
sort (sol.begin(), sol.end());
return sol;
}
*/
vector <int> guess (int n){
sol[1] = ask(1);
poz[sol[1]] = 1;
for (int bit=0;bit<7;bit++){
v.clear();
f.clear();
for (int i=2;i<=n;i++){
if (i & (1<<bit))
v.push_back(i);
}
w = get_pairwise_xor(v);
for (auto it : w)
f[it]--;
v.push_back(1);
w = get_pairwise_xor(v);
for (auto it : w)
f[it]++;
for (auto it : f){
if (!it.second)
continue;
poz[it.first ^ sol[1]] += (1<<bit);
}
}
for (auto it : poz)
sol[it.second] = it.first;
vector <int> ans;
for (int i=1;i<=n;i++)
ans.push_back(sol[i]);
return ans;
}
/*int main (){
ifstream cin ("date.in");
ofstream cout ("date.out");
cin>>n;
for (i=1;i<=n;i++)
cin>>a[i];
vector <int> ans = guess (n);
for (auto it : ans)
cout<<it<<" ";
return 0;
}
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |