求助!为啥我P1176会60分!为什么输出多了一个数据
  • 板块题目总版
  • 楼主Wind23
  • 当前回复6
  • 已保存回复6
  • 发布时间2021/8/7 11:34
  • 上次更新2023/11/4 11:44:33
查看原帖
求助!为啥我P1176会60分!为什么输出多了一个数据
512870
Wind23楼主2021/8/7 11:34

请求助!

我的代码怎么只有60分!!!

#include<bits/stdc++.h>
using namespace std;
int sum=0,total=0;
int a[5010];
int main(){
	int n,b,c,d,e,f,v,w,x,y,z;
	int common=0,leap=0;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	scanf("%d-%d-%d-%d:%d",&b,&c,&d,&e,&f);
	scanf("%d-%d-%d-%d:%d",&v,&w,&x,&y,&z);
	if(z>f){
		total+=z-f;
	}
	else if(z==f){
		total+=0;
	}
	else{
		z+=60;
		y--;
		total+=z-f;
	}
	if(y>e){
		total+=(y-e)*60;
	}
	else if(y==e){
		total+=0;
	}
	else{
		y+=24;
		x--;
		total+=(y-e)*60;
	}
	if(v>b){
		for(int i=b;i<v;i++){
			if(i%4==0 && i%100!=0){
				leap++;
			}
			else if(i%400==0){
				leap++;
			}
			else common++;
		}
		total+=leap*527040+common*525600;
	}
	else if(v==b){
		total+=0;
	}
	if(w>c){
		for(int i=c;i<w;i++){
			if(i==2){
				if(i%4==0 && i%100!=0){
					total+=41760;
				}
				else if(i%400==0){
					total+=41760;
				}
				else{
					total+=40320;
				}
			}
			else{
				if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
					total+=44640;
				}
				else total+=43200;
			}
		}
	}
	else if(w==c){
		total+=0;
	}
	else{
		for(int i=w;i<c;i++){
			if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
					total-=44640;
			}
			else if(i==4||i==6||i==9||i==11){
				total-=43200;
			}
			else{
				if(i==2){
				if(i%4==0 && i%100!=0){
					total+=41760;
				}
				else if(i%400==0){
					total+=41760;
				}
				else{
					total+=40320;
				}
			}
			}
		}
	}
	if(x>d){
		total+=(x-d)*1440;
	}
	else if(x==d){
			total+=0;
		}
	else{
		total+=(d-x)*1440;
	}
	sort(a,a+n);
	for(int i=0;i<n;i++){
		if(total>0){
			total-=a[i];
			sum++;
			if(total<=0){
				sum--;
				break;
			}	
		}
		else break;
	}
	cout<<sum;
	return 0;
}
2021/8/7 11:34
加载中...