Xiaohanmu @ 2024-09-07 19:42:07
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int a[10005];
int start[10];
int endd[10];
int m1[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; //平年的十二个月
int m2[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31}; //闰年的十二个月
bool check(int x)
{
if((x%4==0 && x%400!=0) || x%400==0) //判断闰年
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int n;
scanf("%d",&n);
for(int i = 1;i<=n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d-%d-%d-%d:%d",&start[1],&start[2],&start[3],&start[4],&start[5]);
scanf("%d-%d-%d-%d:%d",&endd[1],&endd[2],&endd[3],&endd[4],&endd[5]);
int time = 0;
for(int i = start[1];i<endd[1];i++)
{
if(check(i)) //如果期间有一个闰年
{
time += 366; //闰年天数
}
else
{
time += 365; //平年天数
}
}
if(check(start[1])) //如果第一年是闰年
{
for(int i = 1;i<start[2];i++)
{
time-=m2[i]; //处理月
}
}
else
{
for(int i = 1;i<start[2];i++)
{
time-=m1[i];
}
}
if(check(endd[1]))
{
for(int i = 1;i<endd[2];i++)
{
time+=m2[i];
}
}
else
{
for(int i = 1;i<endd[2];i++)
{
time+=m1[i];
}
}
for(int i = 1;i<start[3];i++)
{
time--;
}
for(int i = 1;i<endd[3];i++)
{
time++;
}
time = time * 60 * 24; //乘上一天的分钟数
//再把小时换算一下
time -= 60*start[4]+start[5];
time += 60*endd[4]+endd[5];
int ans = 0;
for(int i = 1;i<=n;i++)
{
if(time>=a[i])
{
time-=a[i];
ans++;
}
else
{
break;
}
}
printf("%d",ans);
return 0;
}