求助P1205WA了两个点
查看原帖
求助P1205WA了两个点
668599
BearBig楼主2022/5/22 15:41

求助,有两个点WA。

#include<bits/stdc++.h>
using namespace std;
char a[15][15],b[15][15],ans[15][15],pre[15][15];int n;
bool pd1()
{
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
            b[j][n-i+1]=a[i][j];
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
            if(b[i][j]!=ans[i][j])
                return false;
    return true;
}
bool pd2()
{
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
            b[n-i+1][n-j+1]=a[i][j];
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
            if(b[i][j]!=ans[i][j])
                return false;
    return true;
}
bool pd3()
{
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
            b[n-j+1][i]=a[i][j];
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
            if(b[i][j]!=ans[i][j])
                return false;
    return true;
}
bool pd4()
{
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
            b[i][n-j+1]=a[i][j];
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
            if(b[i][j]!=ans[i][j])
                return false;
    return true;
}
bool pd5()
{
    pd4();
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
            a[i][j]=pre[i][j];
    if(pd1())return true;
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
            a[i][j]=pre[i][j];
    if(pd2())return true;
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
            a[i][j]=pre[i][j];
    if(pd3())return true;
}
bool pd6()
{
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
            if(b[i][j]!=ans[i][j])
                return false;
    return true;
}
void mian()
{
    if(pd1())
    {
        cout<<1;return;
    }
    if(pd2())
    {
        cout<<2;return;
    }
    if(pd3())
    {
        cout<<3;return;
    }
    if(pd4())
    {
        cout<<4;return;
    }
    if(pd5())
    {
        cout<<5;return;
    }
    if(pd6())
    {
        cout<<6;return;
    }
    cout<<7;
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
        {
            cin>>a[i][j];
            pre[i][j]=a[i][j];
        }
    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j)
            cin>>ans[i][j];
    mian();
}
2022/5/22 15:41
加载中...