记录编号 222906 评测结果 AAAAAAAAAA
题目名称 wordsa 最终得分 100
用户昵称 GravatarGaoErFu 是否通过 通过
代码语言 C++ 运行时间 0.007 s
提交时间 2016-02-05 16:12:11 内存使用 0.31 MiB
显示代码纯文本
#include<stdio.h>
#include<stdlib.h>
int a[5010]={0};
char b[20]={0},c[20]={0};
int cmp(const void *a,const void *b)
{return *(int*)a-*(int*)b;}
int panduan(int a)
{
	if(a%4!=0)
	return 0;
	else if(a%400==0)
	return 1;
	else if(a%100==0)
	return 0;
	else return 1;
}
int main()
{
	freopen("wordsa.in","r",stdin);
	freopen("wordsa.out","w",stdout);
	int i,N,n1,n2,y1,y2,r1,r2,x1,x2,f1,f2,time=0,ans=0;
	scanf("%d",&N);
	for(i=0;i<N;i++)
	{scanf("%d",&a[i]);}
	qsort(a,N,sizeof(a[0]),cmp); 
	scanf("%s%s",b,c);
	n1=(b[0]-48)*1000+(b[1]-48)*100+(b[2]-48)*10+(b[3]-48);
	y1=(b[5]-48)*10+(b[6]-48);
	r1=(b[8]-48)*10+(b[9]-48);
	x1=(b[11]-48)*10+(b[12]-48);
	f1=(b[14]-48)*10+(b[15]-48);
	n2=(c[0]-48)*1000+(c[1]-48)*100+(c[2]-48)*10+(c[3]-48);
	y2=(c[5]-48)*10+(c[6]-48);
	r2=(c[8]-48)*10+(c[9]-48);
	x2=(c[11]-48)*10+(c[12]-48);
	f2=(c[14]-48)*10+(c[15]-48);
	if(n2-n1>1)
	{
		for(i=n1+1;i<n2;i++)
		{
			if(panduan(i)==1)
			{time+=366*24*60;}
			else time+=365*24*60;
		}
	}//计算年 
	if(n1!=n2)
	{
		for(i=y1+1;i<=12;i++)
		{
			if(i==2&&panduan(n1)==1)time+=29*24*60;
			else if(i==2)time+=28*24*60;
			else if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)time+=31*24*60;
			else if(i==4||i==6||i==9||i==11)time+=30*24*60;
		}
		for(i=1;i<y2;i++)
		{
			if(i==2&&panduan(n2)==1)time+=29*24*60;
			else if(i==2)time+=28*24*60;
			else if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)time+=31*24*60;
			else if(i==4||i==6||i==9||i==11)time+=30*24*60;
		}
	}
	else if(n1==n2) 
	{
		for(i=y1+1;i<y2;i++)
		{
			if(i==2&&panduan(n1)==1)time+=29*24*60;
			else if(i==2)time+=28*24*60;
			else if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)time+=31*24*60;
			else if(i==4||i==6||i==9||i==11)time+=30*24*60;
		}
	}//计算月 
	if(n1==n2&&y1==y2&&r1-r2>1)
	{
		time+=(r2-r1-1)*24*60; 
	}
	else if(y1!=y2||(y1==y2&&n1!=n2))
	{
		if(y1==2&&panduan(n1)==1)
		time+=(29-r1)*24*60;
		else if(y1==2)time+=(28-r1)*24*60;
		else if(y1==1||y1==3||y1==5||y1==7||y1==8||y1==10||y1==12)time+=(31-r1)*24*60;
		else if(y1==4||y1==6||y1==9||y1==11)time+=(30-r1)*24*60;
		time+=(r2-1)*24*60;
	}//计算日 
	if(n1==n2&&y1==y2&&r1==r2)
	{time+=(x2-x1)*60+(f2-f1);}
	else 
	{
		time+=(24-x1)*60+(0-f1);
		time+=x2*60+f2;
	}//计算小时与分钟 
	for(i=0;i<N;i++)
	{
		if((time-=a[i])>=0)ans++;
		else break;
	}
	printf("\n%d",ans);
	return 0;
}