后5点WA求调
查看原帖
后5点WA求调
524091
dami826楼主2023/11/5 20:04
#include<bits/stdc++.h>
using namespace std;
struct chtholly{
    int a[6];
    void input(){
        for(int i=1;i<=5;i++){
            scanf("%d",&a[i]);
        }
    }
    void output(){
        for(int i=1;i<=5;i++){
            printf("%d ",a[i]);
        }
        printf("\n");
    }

}s[9],ans[201];
int n,ans_num,ans_n;
bool can[201];
void scan(int x){
    for(int i=1;i<=ans_n;i++){
        if(!can[i]){
            return;
        }
        bool ok=false,ok2=true;
        for(int j=1;j<=5;j++){
            if(ans[i].a[j]!=s[x].a[j]){
                //printf("111 %d %d %d %d %d\n",ans[i].a[j],s[x].a[j],ok2,ok,j);
                //ans[i].output();
                //s[x].output();
                if(ok2){
                    if((ans[i].a[j]-s[x].a[j])%10==(ans[i].a[j+1]-s[x].a[j+1])%10||ans[i].a[j+1]==s[x].a[j+1]||j==5){
                        ok=true;
                        ok2=false;
                        if((ans[i].a[j]-s[x].a[j])%10==(ans[i].a[j+1]-s[x].a[j+1])%10){
                            j++;
                        }
                        //ans[i].output();
                        //s[x].output();
                    }
                    else{
                        ok=false;
                        //printf("Anmicius %d\n",ans[i].a[j+1]==s[x].a[j+1]);
                        break;
                    }
                }
                else{
                    //printf("%d %d %d %d\n",ans[i].a[j],s[x].a[j],ok2,ok);
                    ok=false;
                    //printf("Rays\n");
                    break;
                }
            }
        }
        if(!ok){
            can[i]=false;
            ans_num--;
        }
    }
}
void build(){
    for(int i=1;i<=5;i++){
        for(int j=1;j<=9;j++){
            chtholly tmp;
            for(int k=1;k<=5;k++){
                tmp.a[k]=s[1].a[k];
                //printf("%d %d\n",tmp.a[k],s[1].a[k]);
            }
            //tmp.output();
            //s[1].output();
            tmp.a[i]=(tmp.a[i]+j)%10;
            ans_num++;
            ans_n++;
            for(int k=1;k<=5;k++){
                ans[ans_num].a[k]=tmp.a[k];
            }
            //printf("Chtholly ");
            //tmp.output();
        }
    }
    for(int i=1;i<=4;i++){
        for(int j=1;j<=9;j++){
            chtholly tmp;
            for(int k=1;k<=5;k++){
                tmp.a[k]=s[1].a[k];
            }
            tmp.a[i]=(tmp.a[i]+j)%10;
            tmp.a[i+1]=(tmp.a[i+1]+j)%10;
            ans_num++;
            ans_n++;
            for(int k=1;k<=5;k++){
                ans[ans_num].a[k]=tmp.a[k];
            }
            //tmp.output();
        }
    }
}
int main(){
    //freopen("lock.in","r",stdin);
    //freopen("lock.out","w",stdout);
    scanf("%d",&n);
    memset(can,true,sizeof(can));
    for(int i=1;i<=n;i++){
        s[i].input();
        if(i==1){
            build();
            /*for(int j=1;j<=ans_n;j++){
                ans[j].output();
            }*/
        }
        else{
            //s[i].output();
            scan(i);
        }
    }
    printf("%d",ans_num);
    /*for(int i=1;i<=ans_n;i++){
        if(can[i]){
            ans[i].output();
        }
    }*/
    return 0;
}
2023/11/5 20:04
加载中...