求助
查看原帖
求助
793625
Pink_Cut_Tree楼主2023/5/17 17:37
#include<iostream>
#include<algorithm>
using namespace std;
int t[5005],n,y1,y2,m1,m2,d1,d2,h1,h2,min1,min2;
int day_of_year(int x){
	if(x%4==0){
		if(x%4==100){
			if(x%400==0){
				return 366;
			}
			else{
				return 365;
			}
		}
		else{
			return 366;
		}
	}
	else{
		return 365;
	}
}
int day_of_month(int x,int year){
	if(x==1||x==3||x==5||x==7||x==8||x==10||x==12){
		return 31;
	}
	if(x==4||x==6||x==9||x==11){
		return 30;
	}
	if(day_of_year(year)==365){
		return 28;
	}
return 29;
}
long long minute(int y1,int y2,int m1,int m2,int d1,int d2,int h1,int h2,int min1,int min2){
	long long ans=0;
	long long day1=0,day2=0;
	for(int i=1;i<=y1;i++){
		day1+=day_of_year(i);
	}
	for(int i=1;i<=m1;i++){
		day1+=day_of_month(i,y1);
	}
	day1+=d1;
	for(int i=1;i<=y2;i++){
		day2+=day_of_year(i);
	}
	for(int i=1;i<=m2;i++){
		day2+=day_of_month(i,y2);
	}
	day2+=d2;
	ans=(day2-day1)*24*60;
	//cout<<ans<<"\n";
	ans+=(h2-h1)*60;
	ans+=min2-min1;
return ans;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>t[i];
	}
	scanf("%d-%d-%d-%d:%d",&y1,&m1,&d1,&h1,&min1);
	scanf("%d-%d-%d-%d:%d",&y2,&m2,&d2,&h2,&min2);
	sort(t+1,t+n+1);
	long long ans=minute(y1,y2,m1,m2,d1,d2,h1,h2,min1,min2);
	int sum=0;
	for(int cnt=1;ans>=t[cnt-1];cnt++){
		ans-=t[cnt];
		sum++;
		if(cnt==n){
			break;
		}
	}
	cout<<sum;
return 0;
}
2023/5/17 17:37
加载中...