此为ac代码,请留意注释处循环。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll sco[5000006],der[5000006],a[5000006],n,k,i,j,l,r,add0,min00=1e9;
int main(){
cin>>n>>k;
for(i=1;i<=n;i++){
cin>>sco[i];
der[i]=sco[i]-sco[i-1];
}
for(i=1;i<=k;i++){
cin>>l>>r>>add0;
der[l]+=add0;
der[r+1]-=add0;
}
for(i=1;i<=n;i++){//此处循环条件为i<=n
a[i]=a[i-1]+der[i];
min00=min(min00,a[i]);
}
cout<<min00;
return 0;
}
而已下为错误代码,同样请注意注释。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll sco[5000006],der[5000006],a[5000006],n,k,i,j,l,r,add0,min00=1e9;
int main(){
cin>>n>>k;
for(i=1;i<=n;i++){
cin>>sco[i];
der[i]=sco[i]-sco[i-1];
}
for(i=1;i<=k;i++){
cin>>l>>r>>add0;
der[l]+=add0;
der[r+1]-=add0;
}
for(i=1;i<=k;i++){//此时i<=n变味了i<=n
a[i]=a[i-1]+der[i];
min00=min(min00,a[i]);
}
cout<<min00;
return 0;
}
然鹅仅仅wa了一个点#2.....
蒟蒻震惊