checker.cpp
#include "testlib.h"
#include <bits/stdc++.h>
using namespace std;
int R[325],M[257];
int getNum(string str){
int ret=0;
for(int i=0;str[i];i++){
if(!isdigit(str[i]))
quitf(_wa, "ask without numbers!?");
ret=ret*10+str[i]-'0';
}
return ret;
}
int main(int argc, char ** argv){
registerInteraction(argc, argv);
R[0]=inf.readInt();
R[1]=inf.readInt();
R[2]=inf.readInt();
for(int i=3;i<=320;i++)
R[i]=R[i-1]^R[i-2];
for(int i=0;i<256;i++)
M[i]=inf.readInt();
cout.flush();
int left=0;
while(left<=320){
left++;
string a=ouf.readString();
if(a=="SOLUTION"){
if(R[0]!=ouf.readInt())
quitf(_wa, "answer not correct");
if(R[1]!=ouf.readInt())
quitf(_wa, "answer not correct");
if(R[2]!=ouf.readInt())
quitf(_wa, "answer not correct");
for(int i=0;i<256;i++)
if(M[i]!=ouf.readInt())
quitf(_wa, "answer not correct");
quitf(_ok, "answer correct!");
}
else if(left>=320) break;
int Q=getNum(trim(a));
if(Q<0 || Q>255)
quitf(_wa, "number out of range [0,255]");
cout << M[Q^R[left-1]] << endl;
cout.flush();
}
quitf(_wa, "couldn't guess the numbers within 320 questions");
}
interactive_lib.cpp