社区讨论

80分,救救孩子!!!

P1167刷题参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo1pt1lt
此快照首次捕获于
2023/10/23 01:00
2 年前
此快照最后确认于
2023/11/03 01:40
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
long long a[5005];
bool f(int y)
{
	if(y%4==0&&y%100!=0)return 1;
	if(y%400==0)return 1;
	return 0;
}
int main()
{
	long long n,cnt=0;
	scanf("%lld",&n);
	for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
	sort(a+1,a+n+1);
	long long y1,m1,d1,h1,min1;
	long long y2,m2,d2,h2,min2;
	scanf("%lld-%lld-%lld-%lld:%lld",&y1,&m1,&d1,&h1,&min1);
	scanf("%lld-%lld-%lld-%lld:%lld",&y2,&m2,&d2,&h2,&min2);
	long long day1=d1,day2=d2;
	m1--,m2--,y1--,y2--;
	while(y1--)
	{
		if(f(y1))day1+=366;
		else day1+=365;
	}
	while(y2--)
	{
		if(f(y2))day2+=366;
		else day2+=365;
	}
	while(m1--)
	{
		if(m1==2){if(f(y1))day1+=29;else day1+=28;}
		else if(m1==4||m1==6||m1==9||m1==11)day1+=30;
		else day1+=31;
	}
	while(m2--)
	{
		if(m2==2){if(f(y2))day2+=29;else day2+=28;}
		else if(m2==4||m2==6||m1==9||m1==11)day2+=30;
		else day2+=31;
	}
	y1=(day1*24+h1)*60+min1;
	y2=(day2*24+h2)*60+min2;
	y2-=y1;
	for(int i=1;i<=n;i++)
	{
		if(y2>=a[i])
		{
			y2-=a[i];
			cnt++;
		}
		else break;
	}
	cout<<cnt;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...