P2042 - [蓝桥杯2022初赛] 特殊时间 - New Online Judgehttp://oj.ecustacm.cn/problem.php?id=2042
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int m[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int checkMD(int a[]) {
int month = a[0]*10 + a[1];
int day = a[2]*10 + a[3];
if (month < 1 || month > 12) {
return 0;
}
if (day < 1 || day > m[month]) {
return 0;
}
return 1;
}
int checkHM(int a[]) {
int hour = a[0]*10 + a[1];
int minute = a[2]*10 + a[3];
if (hour >= 24 || minute >= 60) {
return 0;
}
return 1;
}
int main() {
int ans = 0;
for (int three = 0; three < 10; three++) {
for (int one = 0; one < 10; one++) {
if (one == three) {
continue;
}
int a[4] = {three, three, three, three};
int cntOfMD = 0, cntOfHM = 0;
for(int i = 0 ; i < 4; i++) {
a[i] = one;
if (checkMD(a)) {
cntOfMD++;
}
if (checkHM(a)) {
cntOfHM++;
}
a[i] = three;
}
ans += 4 * cntOfMD * cntOfHM;
}
}
cout << ans;
return 0;
}