为什么只有60分!
  • 板块P1167 刷题
  • 楼主Wind23
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/8/7 12:08
  • 上次更新2023/11/4 11:44:23
查看原帖
为什么只有60分!
512870
Wind23楼主2021/8/7 12:08

SOS!

为什么我的代码只有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 12:08
加载中...