记录编号 |
606373 |
评测结果 |
AAAAAAAAAA |
题目名称 |
3931.[CSP 2023S]密码锁 |
最终得分 |
100 |
用户昵称 |
金牌教师王艳芳 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.061 s |
提交时间 |
2025-09-24 22:08:12 |
内存使用 |
3.70 MiB |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int n, a[10][5], ans;
bool ok(int p[]) {
for (int i = 0; i < n; i++) {
int d[5], c = 0;
for (int j = 0; j < 5; j++) {
d[j] = (a[i][j] - p[j] + 10) % 10;
if (d[j]) c++;
}
if (c == 0) return false;
if (c == 1) continue;
if (c == 2) {
bool f = false;
for (int j = 0; j < 4; j++)
if (d[j] && d[j+1] && d[j] == d[j+1]) {
if (!d[(j+2)%5] && !d[(j+3)%5] && !d[(j+4)%5])
f = true;
}
if (f) continue;
return false;
}
return false;
}
return true;
}
int main() {
freopen("lock.in", "r", stdin);
freopen("lock.out", "w", stdout);
cin >> n;
for (int i = 0; i < n; i++)
for (int j = 0; j < 5; j++)
cin >> a[i][j];
int p[5];
for (p[0]=0; p[0]<10; p[0]++)
for (p[1]=0; p[1]<10; p[1]++)
for (p[2]=0; p[2]<10; p[2]++)
for (p[3]=0; p[3]<10; p[3]++)
for (p[4]=0; p[4]<10; p[4]++)
if (ok(p)) ans++;
cout << ans << endl;
return 0;
}