xianghaoyu666 @ 2024-07-08 08:08:27
#include<bits/stdc++.h>
using namespace std;
long long a[10000001];
long long b[10000001];
long long n,m,l,r,c,mn=10000000;
int main(){
cin>>n>>m;
for(long long i=1;i<=n;i++){
cin>>a[i];
}
for(long long i=0;i<=m;i++){
cin>>l>>r>>c;
b[l]+=c;
b[r+1]-=c;
}
for(long long i=1;i<=n;i++){
a[i]+=b[i]+a[i-1];
mn=min(a[i],mn);
}
cout<<mn<<endl;
return 0;
}
by smll_wlm @ 2024-07-08 08:23:42
你修改的是差分数组,通过前缀和算出总分。但是,并没有对于单个成绩的
所以,可以最后前缀和的时候通过
by qwqSW @ 2024-07-08 08:24:49
emmm……
for(long long i=0;i<=m;i++){
cin>>l>>r>>c;
b[l]+=c;
b[r+1]-=c;
}
i=0应该得是i=1吧
然后 a[i]+=b[i]+a[i-1];
改成 a[i]=a[i-1]+b[i];就过了
by qwqSW @ 2024-07-08 08:26:23
@qwqSW 输入的时候也没求差分数组
by xianghaoyu666 @ 2024-07-08 11:43:11
谢谢,已经过了