求助本题 checker bug
查看原帖
求助本题 checker bug
28910
览遍千秋七海楼主2024/2/26 18:09

RT,USACO 官方提供的 sol 代码无法通过该 checker。

#include<bits/stdc++.h>
#include "testlib.h"
//checker by Lanbian QianQ
using namespace std;

int main(int argc, char** argv) {
	registerTestlibCmd(argc, argv);
	int T = inf.readInt();
	while(T--) {
		int N = inf.readInt();
		inf.readSpace();
		int P = inf.readInt();
		stack <int> s[4];
		string F = inf.readToken();
		string S = inf.readToken();
		for(int i = 0; i < N; i++) {
			s[1].push(F[i] - '0');
			s[2].push(S[i] - '0');
		}
		int ansM = ans.readInt();
		if(P == 1) {
			int playerM = ouf.readInt();
			if(playerM != ansM) {
				quitf(_wa, "Wrong Answer");
				return 0;
			}
		}
		else {
			int playerM = ouf.readInt();
			if(P == 2) {
				if(playerM < ansM || playerM > ansM + 5) {
					quitf(_wa, "Wrong Answer");
					return 0;
				}
			}
			else {
				if(playerM != ansM) {
					quitf(_wa, "Wrong Answer");
					return 0;
				}
			}
			for(int i = 1, ori, aim; i <= playerM; i++) {
				ouf.readEoln();
				ori = ouf.readInt(1, 3);
				ouf.readSpace();
				aim = ouf.readInt(1, 3);
				if(ori == aim) {
					quitf(_wa, "Wrong Answer");
					return 0;
				}
				if(s[ori].empty()) {
					quitf(_wa, "Wrong Answer");
					return 0;
				}
				int topcol = s[ori].top();
				while(!s[ori].empty() && s[ori].top() == topcol) {
					s[ori].pop();
					s[aim].push(topcol);
				}
			}
			if(s[3].empty() == false) {
				quitf(_wa, "Wrong Answer");
				return 0;
			}
			if(s[1].empty() || s[2].empty()) {
				quitf(_wa, "Wrong Answer");
				return 0;
			}
			int s1top = s[1].top(), s2top = s[2].top();
			while(s[1].empty() == false && s[1].top() == s1top) {
				s[1].pop();
			}
			while(s[2].empty() == false && s[2].top() == s2top) {
				s[2].pop();
			}
			if(s[1].empty() == false || s[2].empty() == false) {
				quitf(_wa, "Wrong Answer");
				return 0;
			}
		}
		ouf.readEoln();
	}
	quitf(_ok, "Accepted!");
	return 0;
}
2024/2/26 18:09
加载中...