#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b,c;
char a1;
cin>>a>>a1>>b>>a1>>c;
if(a>c) swap(a,c);//保证a(年份)为较小值
int d=a,d1=0;
if(d>=60) d1=19;
else d1=20;//年份前两位
if(b<13&&c>0&&b>0){
if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
if(c<32){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
else if(b==2){
if(c<29||((((d1*100+a)%4==0&&(d1*100+a)%100!=0)||(d1*100+a)%400==0)&&c<30)){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
else if(c<31){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}//是否满足输出条件
if(a!=c){//年份有两种可能
swap(a,c);
d=a;
if(d>=60) d1=19;
else d1=20;
if(b>c) swap(b,c);//月份尽量小
if(b<13&&c>0&&b>0){
if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
if(c<32){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
else if(b==2){
if(c<29||((((d1*100+a)%4==0&&(d1*100+a)%100!=0)||(d1*100+a)%400==0)&&c<30)){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
else if(c<31){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
if(b!=c){//月、日有两种可能
swap(b,c);
if(b<13&&c>0&&b>0){
if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
if(c<32){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
else if(b==2){
if(c<29||((((d1*100+a)%4==0&&(d1*100+a)%100!=0)||(d1*100+a)%400==0)&&c<30)){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
else if(c<31){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
}
}
return 0;
}
后来发现a,c一样但以c为年才可成立的日期不输出,改了一下76分
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b,c;
char a1;
cin>>a>>a1>>b>>a1>>c;
if(a>c) swap(a,c);
int d=a,d1=0;
if(d>=60) d1=19;
else d1=20;
if(b<13&&c>0&&b>0){
if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
if(c<32){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
else if(b==2){
if(c<29||((((d1*100+a)%4==0&&(d1*100+a)%100!=0)||(d1*100+a)%400==0)&&c<30)){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
else if(c<31){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
if(a!=c){
swap(a,c);
d=a;
if(d>=60) d1=19;
else d1=20;
if(b>c) swap(b,c);
if(b<13&&c>0&&b>0){
if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
if(c<32){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
else if(b==2){
if(c<29||((((d1*100+a)%4==0&&(d1*100+a)%100!=0)||(d1*100+a)%400==0)&&c<30)){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
else if(c<31){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
if(b!=c){
swap(b,c);
if(b<13&&c>0&&b>0){
if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
if(c<32){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
else if(b==2){
if(c<29||((((d1*100+a)%4==0&&(d1*100+a)%100!=0)||(d1*100+a)%400==0)&&c<30)){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
else if(c<31){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
}
}
else if(b>0&&a>0&&a<13){
d=c;
if(d>=60) d1=19;
else d1=20;
swap(b,c);
if(b<13&&c>0&&b>0){
if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){
if(c<32){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
else if(b==2){
if(c<29||((((d1*100+a)%4==0&&(d1*100+a)%100!=0)||(d1*100+a)%400==0)&&c<30)){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
else if(c<31){
cout<<d1;
if(a<10) cout<<0;
cout<<a<<'-';
if(b<10) cout<<0;
cout<<b<<'-';
if(c<10) cout<<0;
cout<<c<<"\n";
}
}
}
return 0;
}