huozhenyi @ 2023-11-15 21:10:41
#include <bits/stdc++.h>
using namespace std;
const int N=5010;
int rn[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int pn[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int a[N];
int n;
int n1,y11,r1,s1,f1;
int n2,y2,r2,s2,f2;
int r,s,f;
int ans;
bool pd(int x)
{
if (x%4==0&&x%100!=0||x%400==0) return true;
return false;
}
int solve()
{
int d=0;
for (int i=n1;i<=n2;i++)
{
if (pd(i))
{
if (i==n1&&i==n2)
{
for (int j=y11;j<=y2;j++)
{
if (j==y11&&j==y2)
{
for (int k=r1;k<=r2;k++) d++;
}
else if (j==y11)
{
for (int k=r1;k<=rn[j];k++) d++;
}
else if (j==y2)
{
for (int k=1;k<=r2;k++) d++;
}
else
{
for (int k=1;k<=rn[j];k++) d++;
}
}
}
else if (i==n1)
{
for (int j=y11;j<=12;j++)
{
if (j==y11)
{
for (int k=r1;k<=rn[j];k++) d++;
}
else
{
for (int k=1;k<=rn[j];k++) d++;
}
}
}
else if (i==n2)
{
for (int j=1;j<=y2;j++)
{
if (j==y2)
{
for (int k=1;k<=r2;k++) d++;
}
else
{
for (int k=1;k<=rn[j];k++) d++;
}
}
}
else
{
for (int j=1;j<=12;j++)
{
for (int k=1;k<=rn[j];k++) d++;
}
}
}
else
{
if (i==n1&&i==n2)
{
for (int j=y11;j<=y2;j++)
{
if (j==y11&&j==y2)
{
for (int k=r1;k<=r2;k++) d++;
}
else if (j==y11)
{
for (int k=r1;k<=pn[j];k++) d++;
}
else if (j==y2)
{
for (int k=1;k<=r2;k++) d++;
}
else
{
for (int k=1;k<=pn[j];k++) d++;
}
}
}
else if (i==n1)
{
for (int j=y11;j<=12;j++)
{
if (j==y11)
{
for (int k=r1;k<=pn[j];k++) d++;
}
else
{
for (int k=1;k<=pn[j];k++) d++;
}
}
}
else if (i==n2)
{
for (int j=1;j<=y2;j++)
{
if (j==y2)
{
for (int k=1;k<=r2;k++) d++;
}
else
{
for (int k=1;k<=pn[j];k++) d++;
}
}
}
else
{
for (int j=1;j<=12;j++)
{
for (int k=1;k<=pn[j];k++) d++;
}
}
}
}
return d;
}
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("%d",&a[i]);
sort(a+1,a+n+1);
scanf("%d-%d-%d-%d:%d",&n1,&y11,&r1,&s1,&f1);
scanf("%d-%d-%d-%d:%d",&n2,&y2,&r2,&s2,&f2);
r=solve();
if (f1>f2)
{
f2+=60;
s2--;
f=f2-f1;
}
else f=f2-f1;
while (s1>s2)
{
s2+=24;
r--;
}
s=s2-s1;
f=f+s*60+r*24*60;
for (int i=1;i<=n;i++)
{
if (f>=a[i]) ans++,f-=a[i];
}
printf("%d",ans);
return 0;
}