WA #2
查看原帖
WA #2
757124
XABO楼主2023/7/10 10:45
#include<bits/stdc++.h>
using namespace std;
int a,b,c,dd[10],t,m[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(){
	scanf("%d/%d/%d",&a,&b,&c);
	a+=1900;if(a%4==0&&a%100!=0||a%400==0)m[2]++;
	if(a>=1960&&b<=12&&c<=m[b]&&b&&c)dd[++t]=a*10000+b*100+c;
	a-=1900;m[2]--;
	a+=2000;if(a%4==0&&a%100!=0||a%400==0)m[2]++;
	if(a<=2059&&b<=12&&c<=m[b]&&b&&c)dd[++t]=a*10000+b*100+c;
	a-=2000;m[2]--;
	c+=1900;if(c%4==0&&c%100!=0||c%400==0)m[2]++;
	if(c>=1960&&a<=12&&b<=m[a]&&a&&b)dd[++t]=c*10000+a*100+b;
	if(c>=1960&&b<=12&&a<=m[b]&&a&&b)dd[++t]=c*10000+b*100+a;
	c-=1900;m[2]--;
	c+=2000;if(c%4==0&&c%100!=0||c%400==0)m[2]++;
	if(c<=2059&&a<=12&&b<=m[a]&&a&&b)dd[++t]=c*10000+a*100+b;
	if(c<=2059&&b<=12&&a<=m[b]&&a&&b)dd[++t]=c*10000+b*100+a;
	c-=2000;m[2]--;
	sort(dd+1,dd+t+1);
	for(int i=1;i<=t;i++){
		if(dd[i]==dd[i-1])continue;
		printf("%.2d-%.2d-%.2d\n",dd[i]/10000,dd[i]/100%100,dd[i]%100);
	}
	return 0;
}

为什么会WA

求指教

2023/7/10 10:45
加载中...