Checker finished.
查看原帖
Checker finished.
60864
tiger2005楼主2020/8/4 21:10

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

2020/8/4 21:10
加载中...