蒟蒻60分WA求解

P2367 语文成绩

qiao_li_pa @ 2023-10-11 20:49:47

#include<bits/stdc++.h>
using namespace std;
int *grades,*delta;
int n,t,temp,start,ended,p;
int main(){
//本题中delta为差分数组,grades储存原始成绩
//
    cin>>n>>t;
    grades=new int[n];
    delta=new int[n];
    for(int i=1;i<=n;i++){
        cin>>temp;
        grades[i]=temp;
    }//初始化成绩数据
    for(int i=0;i<t;i++){
        cin>>start>>ended>>p;
        delta[start]=p;
        if(ended+1<=n)delta[ended]=p*(-1);
    }//确定差分数组
    int add=0;
    int minx=100000000;
    for(int i=1;i<=n;i++){
        add+=delta[i];
        minx=min(minx,grades[i]+add);
    }//比较,找最小值
    cout<<minx;//打印结果
} 

代码如上,带注释,还望各位能帮忙找一找问题,感谢。


by yuxiaohe @ 2023-10-14 09:55:39

第二个循环里对差分数组的赋值改为+=。


by qiao_li_pa @ 2023-10-17 19:45:08

@yuxiaohe 改了之后提交为80分


|