看一下代码,错了第六个点
查看原帖
看一下代码,错了第六个点
816076
o9233楼主2023/10/30 12:33
#include <bits/stdc++.h>
using namespace std;
int n,b[15][8],ans,maxz;
bool wju[13][1000003];
int main(){
    //freopen("lock.in","r",stdin);
   // freopen("lock.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=5;j++)
            scanf("%d",&b[i][j]);
    if(n==1){
        cout<<81<<endl;
        return 0;
    }
    for(int i=1;i<=n;i++)
        for(int j=1;j<=5;j++)
            for(int o=b[i][j]+1;o!=b[i][j];o=(o+1)%10){
                int zh=0;
                for(int k=1;k<=5;k++)
                    if(k==j)zh=zh*10+o;
                    else zh=zh*10+b[i][k];
                wju[i][zh]=1;
                if(maxz<zh)maxz=zh;
            }
    for(int i=1;i<=n;i++)
        for(int j1=1,j2=2;j1<=4;j1++,j2++)
            for(int o=1;o<=9;o++){
                int zh=0;
                for(int k=1;k<=5;k++)
                    if(k==j1)zh=zh*10+(b[i][j1]+o)%10;
                    else if(k==j2)zh=zh*10+(b[i][j2]+o)%10;
                    else zh=zh*10+b[i][k];
                wju[i][zh]=1;
                if(maxz<zh)maxz=zh;
            }
    for(int j=1;j<=maxz;j++){
        bool r1=0;
        for(int i=1;i<=n;i++)
            if(wju[i][j]==0){
                r1=1;
                break;
            }
        if(r1==0)ans++;
    }
    printf("%d\n",ans);
    return 0;
}
2023/10/30 12:33
加载中...