// 读数据写的有点蠢,但是解法没用暴力,可以参考一下
#include <bits/stdc++.h>
using namespace std;
int main() {
char ch[114];
char c;
int i = 0;
while ((c = getchar()) != '\n') {
ch[i] = c;
i++;
}
stringstream ss;
vector<string> s(3);
vector<string> s_ex(3);
ss << ch[0] << ch[1];
ss >> s[0];
s_ex[0] = s[0];
ss.clear();
ss << ch[3] << ch[4];
ss >> s[1];
s_ex[1] = s[1];
ss.clear();
ss << ch[6] << ch[7];
ss >> s[2];
s_ex[2] = s[2];
//////////////////////////////
sort(s.begin(),s.end());
//这句一定要有,把日期初始成从小到大递增的状态,然后进行字典序遍历,否则会遗漏情况:(
//遍历字典序,然后根据题目要求进行特判并输出
do {
if ((s[0] == s_ex[0]) && (s[1] == s_ex[1]) && (s[2] == s_ex[2])) {
if (s[0] <= "59") {
cout << "20";
} else {
cout << "19";
}
cout << s[0] << "-" << s[1] << "-" << s[2] << endl;
continue;
}
if((s[0] == s_ex[2]) && (s[1] == s_ex[0]) && (s[2] == s_ex[1])){
if((s[1] == "00") || (s[2] == "00"))continue;
if (s[0] <= "59") {
cout << "20";
} else {
cout << "19";
}
cout << s[0] << "-" << s[1] << "-" << s[2] << endl;
continue;
}
if((s[0] == s_ex[2]) && (s[1] == s_ex[1]) && (s[2] == s_ex[0])){
if((s[1] == "00") || (s[2] == "00"))continue;
if (s[0] <= "59") {
cout << "20";
} else {
cout << "19";
}
cout << s[0] << "-" << s[1] << "-" << s[2] << endl;
continue;
}
} while (next_permutation(s.begin(), s.end()));
return 0;
}
````
0 回复
0 转发
1 喜欢
1 阅读



