70pts求调
  • 板块P1167 刷题
  • 楼主TC1234
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/2/7 17:11
  • 上次更新2025/2/7 20:04:44
查看原帖
70pts求调
786213
TC1234楼主2025/2/7 17:11
#include <bits/stdc++.h>
using namespace std;
int p1[6]={},p2[6]={},hd=1,sz=0;
long long fz(int y,int m,int d,int h,int mm){
	long long s=0;
	for (int i=0;i<y;i++){
		if (i%4==0&&i%100!=0||i%400==0){
			s+=366*1440;
		}else{
			s+=365*1440;
		}
	}
	for (int i=1;i<m;i++){
		if (i==1||i==3||i==5||i==7||i==8||i==10||i==12){
			s+=31*1440;
		}else if (i==2){
			if (y%4==0&&y%100!=0||y%400==0){
				s+=29*1440;
			}else{
				s+=28*1440;
			}
		}else{
			s+=30*1440;
		}
	}
	for (int i=1;i<d;i++){
		s+=1440;
	}
	for (int i=1;i<=h;i++){
		s+=60;
	}
	s+=mm;
	return s;
}
int main(){
	int n;
	cin>>n;
	int t[7000]={};
	for (int i=1;i<=n;i++){
		cin>>t[i];
	}
	sort(t+1,t+n+1);
	string a,b;
	cin>>a>>b;
	for (int i=0;i<a.length();i++){
		if (a[i]!='-'&&a[i]!=':'){
			sz*=10;
			sz+=int(a[i]-'0');
		}else{
			p1[hd]=sz;
			sz=0;
			hd++;
		}
	}
	p1[hd]=sz;
	hd=1,sz=0;
	for (int i=0;i<b.length();i++){
		if (b[i]!='-'&&b[i]!=':'){
			sz*=10;
			sz+=int(b[i]-'0');
		}else{
			p2[hd]=sz;
			sz=0;
			hd++;
		}
	}
	p2[hd]=sz;
	int s=fz(p2[1],p2[2],p2[3],p2[4],p2[5])-fz(p1[1],p1[2],p1[3],p1[4],p1[5]); 
	cout<<fz(p2[1],p2[2],p2[3],p2[4],p2[5])<<" "<<fz(p1[1],p1[2],p1[3],p1[4],p1[5])<<endl;
	hd=1;
	int sum=-1;
	if (!s){
		cout<<0;
		return 0;
	}
	while(s>=0){
		sum++;
		s-=t[hd];
		hd++;
	}
	cout<<sum;
	return 0;
}
2025/2/7 17:11
加载中...