求助
查看原帖
求助
762928
Runtime_Error754楼主2023/8/28 09:52

自己写了一个spj代码,意思是输出序列与标准答案如果完全相同则AC,一部分相同按部分给分,否则WA,但为什么PC(部分正确)的分数有一些问题,他应该是10分,但是是9分,我试着输出y和z(输出序列元素个数和标准答案的),然后z非常大,像一个随机数,应该哪里出了问题,求调

#include<testlib.h>
#include<bits/stdc++.h>
using namespace std;
int als[100050],bls[100050];
int main(int argc,char*argv[]) 
{
    registerTestlibCmd(argc, argv);
    int x,ansx=0,flag=1,cnt=0,y=1,z=1;
    string a,b;
    a=ouf.readLine();
    b=ans.readLine();
    for(auto i:a)
    {
        if(isdigit(i)) als[y]=als[y]*10+(i-48);
        else y++;
    }
    for(auto i:b)
    {
        if(isdigit(i)) bls[z]=bls[z]*10+(i-48);
        else z++;
    }
    for(int i=1;i<=min(y,z);i++)
    {
        if(als[i]==bls[i]) ansx++;
        else flag=0;
    }
    if(flag) quitf(_ok, "The answer is correct.");
    else if(ansx) quitp((ansx*1.0)/max(y,z),"Partially Correct,y=%d,z=%d",y,z);
    else quitf(_wa, "All the answer is wrong.");
}
2023/8/28 09:52
加载中...