好水的题啊
查看原帖
好水的题啊
1268457
20090818Cc楼主2024/10/5 10:17

我样例过不去,但交上去100全过QAQ

#include<bits/stdc++.h>
#define ll long long
#define fr(m,n) for(ll i=m;i<=n;i++)
#define fo(m,n) for(ll i=m;i>=n;i--)
using namespace std;
const ll M=1e7+11110;
ll r(){
	ll sum=0,f=1;
	char c=getchar();
	while(c>'9'||c<'0'){
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		sum*=10;
		sum+=c-'0';
		c=getchar();
	}
	return sum*f;
}

ll a[M],cc[M],he[M],sum=0;
ll n,m,d[M],s[M],t[M];
int main(){
	n=r(),m=r();
	fr(1,n) a[i]=r();
	fr(1,m){
		d[i]=r(),s[i]=r(),t[i]=r();
		cc[s[i]]+=d[i],cc[t[i]+1]-=d[i];
	}
	fr(1,n) he[i]=he[i-1]+cc[i];
	fr(1,n) if(he[i]>a[i]){
			cout<<"-1"<<endl;
			for(ll j=1;j<=m;j++){
				if(s[j]<=i&&t[j]>=i) sum+=d[j];
				if(sum>a[i]){
					cout<<j<<endl;
					return 0;
				}
			}
			return 0;
		} 
	cout<<"0"<<endl;
	return 0;
}

样例:

输入;

4 3 
2 5 4 3 
2 1 3 
3 2 4 
4 2 4

输出

-1

2

我的输出:

-1

3

2024/10/5 10:17
加载中...