社区讨论

求助DL,刚搓的checker用不了

学术版参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mhk70djq
此快照首次捕获于
2025/11/04 14:33
4 个月前
此快照最后确认于
2025/11/04 14:33
4 个月前
查看原帖
最近出了道幻方的题,答案不唯一要用 SPJ,就手搓了个checker.cpp,一测,报了个 wrong output format Expected EOLN,求助一下大佬。
以下是checker.cpp。
CPP
#include "testlib.h"

int main(int argc, char *argv[])
{
	registerTestlibCmd(argc,argv);
	int n = inf.readInt();
	inf.readEof();
	int a[n][n];
	for(int i = 0;i < n;i++)
	{
		for(int j = 0;j < n;j++)
		{
			a[i][j] = ouf.readInt();
			if(i == n - 1 && j == n - 1)ouf.readEof();
			else if(j == n - 1)ouf.readEoln(); 
			else ouf.readSpace();
		}
	}
	bool h[n * n];
	for(int i = 0;i < n;i++)
	{
		for(int j = 0;j < n;j++)
		{
			if(a[i][j] < 1 || a[i][j] > n * n || h[a[i][j]])quitf(_wa,"The number(s) is/are invalid.");
			h[a[i][j]] = 1;
		}
	}
	int sum = n * (n * n + 1) >> 1,sum3 = 0,sum4 = 0;
	for(int i = 0;i < n;i++)
	{
		int sum1 = 0,sum2 = 0;
		for(int j = 0;j < n;j++)
		{
			sum1 += a[i][j];
			sum2 += a[j][i];
		}
		sum3 += a[i][i];
		sum4 += a[i][n - i - 1];
		if(sum1 != sum || sum2 != sum)quitf(_wa,"The sum(s) is/are invalid.");
	}
	if(sum3 != sum || sum4 != sum)quitf(_wa,"The sum(s) is/are invalid.");
	quitf(_ok,"The ans is ok.");
}
输入为 3,输出为
CPP
8 1 6
3 5 7
4 9 2
因为这个输出是我在win下手造的,还特意去hexed去了\r,结果还是有问题,求 DL 答疑。

回复

2 条回复,欢迎继续交流。

正在加载回复...