6 solutions
-
1
题目传送门
思路:
AC CODE:
#include<bits/stdc++.h> using namespace std; const int N=1e6+10; long long r[N],d[N],s[N],t[N]; int n,m; long long b[N]; bool check(int k) { for(int i=1;i<=n;i++) { b[i]=r[i]-r[i-1]; } for(int i=1;i<=k;i++) { b[s[i]]-=d[i]; b[t[i]+1]+=d[i]; } long long res=0; for(int i=1;i<=n;i++) { res+=b[i]; if(res<0) { return 1; } } return 0; } int main() { cin>>n>>m; for(int i=1;i<=n;i++) { cin>>r[i]; } for(int i=1;i<=m;i++) { cin>>d[i]>>s[i]>>t[i]; } int l=1,r=m; while(l<r) { int mid=l+r>>1; if(check(mid)) { r=mid; } else { l=mid+1; } } if(check(r)) { cout<<-1<<endl<<r; } else { cout<<0; } return 0; }肯定得全分
Information
- ID
- 198
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 40
- Accepted
- 12
- Uploaded By