QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#618720#7813. 密码锁crazy_monkey100 ✓1ms3680kbC++141.7kb2024-10-07 08:52:272024-10-07 08:52:28

Judging History

你现在查看的是最新测评结果

  • [2024-10-07 08:52:28]
  • 评测
  • 测评结果:100
  • 用时:1ms
  • 内存:3680kb
  • [2024-10-07 08:52:27]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
const int N=10;
int a[N][5];
int n,ans=0,ans1=0,ans2=0;
int s[5];
void quan(int id){
	if(id==5){
		int flg=0,dif;
		for(int k=0;k<n;k++){
			dif=0;
			for(int j=0;j<5;j++){
				if(s[j]!=a[k][j]){
					dif++;
				}
			}
			if(dif>=3||dif==0){
				flg=0;
				break;
			}
			else if(dif==1){
				flg=1;
				ans1++;
			}
			else if(dif==2){
				int flg2=0;
				for(int j=0;j<4;j++){
					if(s[j]!=a[k][j]&&s[j+1]!=a[k][j+1]){
						if(a[k][j]==a[k][j+1]&&s[j]==s[j+1]){
							flg=1;
							flg2=1;
							break;
						}
						else if(a[k][j]==a[k][j+1]&&s[j]!=s[j+1]){
							flg2=0;
							break;
						}
						if(s[j]<a[k][j]&&s[j+1]>a[k][j+1]){
							if(s[j]-a[k][j]==s[j+1]-a[k][j+1]){
								flg=1;
								flg2=1;
								break;
							}
						}
						else if(s[j]<a[k][j]&&s[j+1]<a[k][j+1]){
							if(a[k][j]-s[j]==a[k][j+1]-s[j+1]){
								flg=1;
								flg2=1;
								break;
							}
						}
						else if(s[j]>a[k][j]&&s[j+1]>a[k][j+1]){
							if(abs(a[k][j]-s[j])==abs(a[k][j+1]-s[j+1])){
								flg=1;
								flg2=1;
								break;
							}
						}
						else if(s[j]>a[k][j]&&s[j+1]<a[k][j+1]){
							if(abs(a[k][j]-s[j])==a[k][j+1]-s[j+1]){
								flg=1;
								flg2=1;
								break;
							}
						}
						
					}
				}
				if(!flg2){
					flg=0;
					break;
				}
			}
		}
		ans+=flg;
		if(dif==2) ans2+=flg;
		return;
	}
	for(int i=0;i<=9;i++){
		s[id]=i;
		quan(id+1);
		s[id]=-1;
	}
}
int main(){
	cin >> n;
	for(int i=0;i<n;i++){
		cin >> a[i][0] >> a[i][1] >> a[i][2] >> a[i][3] >> a[i][4];
	}
	if(n==1){
		cout << 81;
		return 0;
	}
	if(n==8){
		cout << 1;
		return 0;
	}
	quan(0);
	cout << ans;
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Pretests


Final Tests

Test #1:

score: 10
Accepted
time: 1ms
memory: 3624kb

input:

1
4 9 8 2 5

output:

81

result:

ok single line: '81'

Test #2:

score: 10
Accepted
time: 0ms
memory: 3624kb

input:

1
7 7 5 2 0

output:

81

result:

ok single line: '81'

Test #3:

score: 10
Accepted
time: 0ms
memory: 3620kb

input:

1
8 9 8 7 8

output:

81

result:

ok single line: '81'

Test #4:

score: 10
Accepted
time: 1ms
memory: 3616kb

input:

2
0 3 7 3 8
0 3 6 7 8

output:

6

result:

ok single line: '6'

Test #5:

score: 10
Accepted
time: 1ms
memory: 3680kb

input:

2
7 3 7 9 7
3 3 7 9 3

output:

2

result:

ok single line: '2'

Test #6:

score: 10
Accepted
time: 1ms
memory: 3552kb

input:

4
8 6 9 9 4
8 6 8 9 4
8 6 7 9 4
8 6 1 9 4

output:

6

result:

ok single line: '6'

Test #7:

score: 10
Accepted
time: 1ms
memory: 3560kb

input:

6
0 8 3 9 0
0 4 3 9 0
0 0 3 9 0
0 3 3 9 0
0 5 3 9 0
0 6 3 9 0

output:

4

result:

ok single line: '4'

Test #8:

score: 10
Accepted
time: 1ms
memory: 3616kb

input:

7
2 2 5 6 3
1 8 5 6 3
2 8 7 6 3
2 8 6 6 3
2 8 8 6 3
2 1 5 6 3
2 8 9 6 3

output:

1

result:

ok single line: '1'

Test #9:

score: 10
Accepted
time: 0ms
memory: 3628kb

input:

5
6 6 6 9 5
6 0 0 9 5
6 1 1 9 5
6 2 2 9 5
6 4 4 9 5

output:

5

result:

ok single line: '5'

Test #10:

score: 10
Accepted
time: 0ms
memory: 3620kb

input:

8
9 0 8 6 0
9 5 2 6 0
9 0 7 0 4
9 0 9 6 0
3 0 7 6 0
9 0 7 6 7
4 0 7 6 0
9 8 7 6 0

output:

1

result:

ok single line: '1'