求dl调
  • 板块灌水区
  • 楼主CZKWEN543
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/5/27 20:39
  • 上次更新2023/10/23 14:33:23
查看原帖
求dl调
482253
CZKWEN543楼主2023/5/27 20:39

P8651

#include<bits/stdc++.h>
using namespace std;

int p1, p2, p3;
struct node{
	int yearg;
	int monthg;
	int dateg;
}a[10];
int h;
int num[5];

inline void getthrow(int year, int month, int date){
	if(year>59) year+=1900;
	else year+=2000;
	if(month<1 || month>13) return ;
	if(date<1) return ;
	if((month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) && date>31) return ;
	if((month==4 || month==6 || month==9 || month==11) && date>30) return ;
	if(month==2){
		if(!(year%400)){
			if(date>29) return ;
		}
		else if(!(year%100)){
			if(date>28) return ;
		}
		else if(!(year%4)){
			if(date>29) return ;
		}
		else{
			if(date>28) return ;
		}
	}
	h++;
	a[h].yearg=year;
	a[h].monthg=month;
	a[h].dateg=date;
}

inline bool cmp(node x, node y){
	if(x.yearg==y.yearg){
		if(x.monthg==y.monthg){
			return x.dateg<y.dateg;
		}
		return x.monthg<y.monthg;
	}
	return x.yearg<y.yearg;
}

int main(){
	scanf("%d/%d/%d", &p1, &p2, &p3);
	getthrow(p1, p2, p3);
	getthrow(p3, p1, p2);
	getthrow(p3, p2, p1);
	for(int i=1;i<=h;i++){
		num[i]+=a[i].yearg*10000+a[i].monthg*100+a[i].dateg;
	}
	sort(num+1, num+1+h);
	int jntm=unique(num+1, num+1+h)-num-1;
	for(int i=1;i<=jntm;i++) printf("%d-%02d-%02d\n", num[i]/10000, num[i]/100%100, num[i]%100);
}

#7过不去

2023/5/27 20:39
加载中...