30求助
查看原帖
30求助
1471978
fan1k楼主2024/10/19 09:24

求助,为什么全都TLE了

#include <iostream>
using namespace std;

typedef long long ll;

const ll MAXN=8; 
ll a[MAXN][5];
ll z[5];
ll n,m=0;

int test();

int main(){
    cin >> n;
    if (n==1){
        cout << 81;
        return 0;
    }
    for (int i=0; i<n; i++){
        for (int j=0; j<5; j++)
            cin >> a[i][j];
    }
    for (int d=0; d<10; d++){ z[0]=d;
        for (int e=0; e<10; e++){ z[1]=e;
            for (int f=0; f<10; f++){ z[2]=f;
                for (int g=0; g<10; g++){ z[3]=g;
                    for (int h=0; h<10; h++){ z[4]=h;
                        test();
                    }
                }
            }
        }
    }
    cout << m;
}

int test(){
    for (int i=0; i<n; i++){
        int t=0;
        int dif[2];
        for (int j=0; j<5; j++){
            if (a[i][j]!=z[j]){
                if (t>2) return 0;
                dif[t]=j;
                t++;
            }
        }
        if (t>2||t==0) return 0;
        if (t==2){
            if (((a[i][dif[0]]-z[dif[0]]+10)%10)!=((a[i][dif[1]]-z[dif[1]]+10)%10)) return 0;
            if (dif[1]-dif[0]>1) return 0;
        }
    }
    m++;
    return 0;
}
2024/10/19 09:24
加载中...