#include<bits/stdc++.h>
using namespace std;
int is(int y,int m,int d){
int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(y>=60&&y<=99){
y=y+1900;
}
else y=y+2000;
if(y%4==0&&y%100!=0){
day[2]++;
}
if(m>12||d>day[m])
return 0;
else return 1;
}
int main(){
char s[8];
int s1,s2;
int a[4];
a[0]=0;
while(scanf("%s",&s)!=EOF) {
s1=s[0];s2=s[1];
a[1]=(s1-48)*10+s2-48;
s1=s[3];s2=s[4];
a[2]=(s1-48)*10+s2-48;
s1=s[6];s2=s[7];
a[3]=(s1-48)*10+s2-48;
int y[4],m[4],d[4];
for(int i=0;i<=3;i++){
y[i]=0;m[i]=0;d[i]=0;
}
int i=1,j=2,k=3;
if(is(a[i],a[j],a[k])){
int y1=a[i];
if(y1>=60&&y1<=99)y1=y1+1900;
else y1=y1+2000;
y[1]=y1;
m[1]=a[j];
d[1]=a[k];
}
i=3,j=1,k=2;
if(is(a[i],a[j],a[k])){
int y1=a[i];
if(y1>=60&&y1<=99)y1=y1+1900;
else y1=y1+2000;
y[2]=y1;
m[2]=a[j];
d[2]=a[k];
}
i=3,j=2,k=1;
if(is(a[i],a[j],a[k])){
int y1=a[i];
if(y1>=60&&y1<=99)y1=y1+1900;
else y1=y1+2000;
y[3]=y1;
m[3]=a[j];
d[3]=a[k];
}
int min;
for(int i=1;i<=3;i++){
min=3;
for(int j=i;j<=3;j++){
if(y[j]<y[min]||y[j]==y[min]&&m[j]<m[min]||y[j]==y[min]&&m[j]==m[min]&&d[j]<d[min]){
min=j;
}
}
int t1=y[i];int t2=m[i];int t3=d[i];
y[i]=y[min];m[i]=m[min];d[i]=d[min];
y[min]=t1;m[min]=t2;d[min]=t3;
}
for(int i=1;i<=3;i++){
if(i>=2&&(y[i-1]==y[i])&&(m[i-1]==m[i])&&(d[i-1]==d[i])){
continue;
}
if(i==3&&y[i-2]==y[i]&&m[i-2]==m[i]&&d[i-2]==d[i]){
continue;
}
if(m[i]==0||d[i]==0){
continue;
}
printf("%d-",y[i]);
if(m[i]<=9)printf("0%d-",m[i]);
else printf("%d-",m[i]);
if(d[i]<=9)printf("0%d\n",d[i]);
else printf("%d\n",d[i]);
}
}
}
为啥这个#2过不去提示WA