ac

zhyf  •  7小时前


include <bits/stdc++.h>

using namespace std;

char ck(string t) {

int a[17] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
int sum = 0;
for (int i = 0; i < 17; i++) {
	sum += (t[i] - '0') * a[i];
}
sum %= 11;
char b[11] = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
if (b[sum] == t[17])
	return t[17];
else
	return b[sum];

}

bool isday(int y, int m, int d) {

if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
	if (d > 31)
		return 0;
}
if (m == 4 || m == 6 || m == 9 || m == 11) {
	if (d > 30)
		return 0;
}
if (m == 2) {
	if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
		if (d > 29)
			return 0;
	} else {
		if (d > 28)
			return 0;
	}

}
return 1;

}

string vi(string s) {

int year = stoi(s.substr(6, 4));
int month = stoi(s.substr(10, 2));
int day = stoi(s.substr(12, 2));
if (year < 1980 || year > 2006)
	return "Y";
if (month < 1 || month > 12)
	return "M";
if (!isday(year, month, day))
	return "D";
char c = ck(s);
if (c == s[17])
	return "T";
else {
	s[17] = c;
	return s;
}

}

int main() {

int n;
cin >> n;
for (int i = 0; i < n; i++) {
	string id;
	cin >> id;
	cout << vi(id) << endl;
}
return 0;

}


评论:

请先登录,才能进行评论