修正了SPJ,本题题解重新开放
查看原帖
修正了SPJ,本题题解重新开放
267596
10circle洛谷波特楼主2025/4/23 21:26

原先 SPJ 将许多错误做法放过了,修正后原先只剩一篇枚举的题解正确,因此重新开放题解区。

现在的 SPJ,有误请指出:

#include"testlib.h"
#include<cstring>
using namespace std;
string a[105];
bool f[105][105], g[105][105];
int main(int argc,char* argv[]){
    registerTestlibCmd(argc,argv);
    int n=inf.readInt(1, 100);
    int m=inf.readInt(1, 100);
    for(int i=0;i<n;i++)
        a[i]=inf.readToken();
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            if(a[i][j]=='x')f[i][j]=1;
    int x_1=ouf.readInt(1, n),y_1=ouf.readInt(1, m),l_1=ouf.readInt(1, min(n - x_1, m - y_1) + 1);
    x_1--,y_1--;
    int x_2=ouf.readInt(1, n),y_2=ouf.readInt(1, m),l_2=ouf.readInt(1, min(n - x_2, m - y_2) + 1);
    x_2--,y_2--;
    for(int i=x_1,t_1=1;t_1<=l_1;t_1++,i++)
        for(int j=y_1,t_2=1;t_2<=l_1;t_2++,j++)
            g[i][j]=1;
    for(int i=x_2,t_1=1;t_1<=l_2;t_1++,i++)
        for(int j=y_2,t_2=1;t_2<=l_2;t_2++,j++)
            g[i][j]=1;
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            if(f[i][j] != g[i][j])
                quitf(_wa,"The answer is wrong.");
    quitf(_ok,"The answer is right");
}
2025/4/23 21:26
加载中...