在本地运行非常快,但在洛谷上它就超时。就是不知道怎么了。有没有大佬能解释一下?
#include<bits/stdc++.h>
using namespace std;
int a[5001],b[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
long long sum=0,sum2=0,sum3;
int y,m,d,h,M,y2,m2,d2,h2,M2,n;
int cnt=0,j=1;
int rn(int n)
{
if(n%4==0&&n%100!=0||n%400==0) return 1;
else return 0;
}
int cntd()
{
sum=y*365*24*60+m*b[m]*24*60+d*24*60+h*60+M;
sum2=y2*365*24*60+m2*b[m2]*24*60+d2*24*60+h2*60+M2;
if(rn(y)&&m>=2&&d>=28) sum+=24*60;
if(rn(y2)&&m2>=2&&d2>=28) sum2+=24*60;
sum3=sum2-sum;
}
int main()
{
char c;
cin>>n;
for(int i=1; i<=n; i++) scanf("%d",&a[i]);
cin>>y>>c>>m>>c>>d>>c>>h>>c>>M>>y2>>c>>m2>>c>>d2>>c>>h2>>c>>M2;
sort(a+1,a+1+n);
cntd();
while(sum3>0)
{
if(sum3>=a[j])
{
cnt++;
sum3-=a[j];
}
j++;
}
cout<<cnt<<endl;
}