1 条题解
-
0
C++ :
#include<iostream> #include<algorithm> #define N 5000010//数据要开的大 using namespace std; int a[N];//开两个一维数组用于差分 int b[N]; int main() { int n,p; cin>>n>>p; for(int i=1;i<=n;i++) { cin>>a[i]; b[i]=a[i]-a[i-1];//进行构造差分数组 } while(p--) { int l,r,c; cin>>l>>r>>c; b[l]+=c;//对于数组a[l,r]区间上的数据加c b[r+1]-=c; } int ans=101;//因学生数据分数小于等于100 for(int i=1;i<=n;i++) { a[i]=b[i]+a[i-1]; ans=min(a[i],ans);//求取二者最小值 } printf("%d",ans); return 0; }/*若是使用sort函数排列然后输出第一个元素时,会因sort排序而TLE*/
- 1
信息
- ID
- 1739
- 时间
- 2000ms
- 内存
- 128MiB
- 难度
- 9
- 标签
- 递交数
- 49
- 已通过
- 5
- 上传者