玄关80分求调 WA on #5 #6
  • 板块P1167 刷题
  • 楼主CNzzc
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/18 21:55
  • 上次更新2024/10/18 22:01:11
查看原帖
玄关80分求调 WA on #5 #6
750689
CNzzc楼主2024/10/18 21:55
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define up(i,j,k,l) for(int i=j;i<=k;i+=l)
#define down(i,j,k,l) for(int i=j;i>=k;i-=l)
using namespace std;
const int N=5e3+10;
int n;
int a[N];
char x;
int c;
int s[N],t[N];
int cs,ct;
string st;
int y[15]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int ans;
bool r(int x)
{
	if((x%400==0) || (x%4==0 && x%100!=0)){
		return true;
	} 
	else{
		return false;
	}
}
void solve()
{
	cin>>n;
	up(i,1,n,1){
		cin>>a[i];
	}
	sort(a+1,a+n+1);
	up(i,1,2,1){
		cin>>st;
		c=0;
		up(j,0,(int)st.length()-1,1){
			x=st[j];
			if(x=='-' || x==':'){
				if(i==1){
					s[++cs]=c;
				}
				if(i==2){
					t[++ct]=c;
				}
				c=0;
			}
			else{
				c*=10;
				c+=(x-'0');
			}
		}
		if(i==1){
			s[++cs]=c;
		}
		if(i==2){
			t[++ct]=c;
		}		
	}
	c=0;
	up(i,s[1],t[1]-1,1){
		c+=365;
		if(r(i)){
			c++;	
		}
	}
	up(i,1,s[2],1){
		c-=y[i];
		if(r(s[1]) && i==2){
			c--;
		}
	}
	up(i,1,t[2],1){
		c+=y[i];
		if(r(t[1]) && i==2){
			c++;
		}
	}
	c-=s[3];
	c+=t[3];
	c*=24;
	c-=s[4];
	c+=t[4];
	c*=60;
	c-=s[5];
	c+=t[5];
	up(i,1,n,1){
		if(c>=a[i]){
			ans++;
			c-=a[i];
		}
		else{
			break;
		}
	}
	cout<<ans<<endl;
	return;
}
signed main()
{
    //ios::sync_with_stdio(false);
	//cin.tie(0);
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	int _=1;
	//cin>>_;
	up(i,1,_,1){
		solve();
	}
	return 0;
}
2024/10/18 21:55
加载中...