Rt,用Testlib编写,代码如下:
#include"testlib.h"
#include<cstdio>
long long T,rn,rk,re[5000005],rf[5000005],tepan;
__int128 n,k,e[5000005],f[5000005],my_ans,users_ans;
int main(int argc,char *argv[])
{
registerTestlibCmd(argc,argv);
T=inf.readLong();
while(T--)
{
my_ans=users_ans=0;
rn=inf.readLong();rk=inf.readLong();n=rn;k=rk;
for(int i=1;i<=n;i++) re[i]=inf.readLong(),e[i]=re[i];
tepan=ans.readLong();
for(int i=1;i<=n;i++)
{
rf[i]=ouf.readLong();
f[i]=rf[i];
if((f[1]==-1&&tepan!=-1)||(f[1]!=-1&&tepan==-1))
{
quitf(_wa,"Wrong Answer");
return 0;
}
if(f[1]==-1&&tepan==-1) break;
if(f[i]>=(long long)1e15||f[i]<=0)
{
quitf(_wa,"Format Error");
return 0;
}
users_ans=users_ans+f[i]*e[i];
my_ans+=f[i];
}
if(f[1]==-1&&tepan==-1) continue;
if(users_ans!=my_ans*k)
{
quitf(_wa,"Wrong Answer");
return 0;
}
//ouf.readEof();
}
quitf(_ok,"Accepted");
return 0;
}
除了被注释掉的那行代码,其他都没有显著问题,但无法判定必要换行,即如果对方不输出换行而输出空格也算过,但是题目中要求换行。
如果不注释注释掉的那行代码,就出问题了,显示PE Expected EOF。