60分求助,找不到问题!

P2367 语文成绩

hehe123313 @ 2023-09-28 22:43:49

#include<iostream> 
using namespace std;
int  l,r,c,n,m;
int a[100000],b[100000];
void insert(int l,int r,int c)
{b[l]+=c;
b[r+1]-=c;
}
void quick_sort(int a[],int l,int r)
{if(l>=r)
return ;
int x=a[l],i=l-1,j=r+1;
while(i<j)
{do
i++;
while(a[i]<x);
do
j--;
while(a[j]>x);
if(i<j)
swap(a[i],a[j]);
}
quick_sort(a,l,j);
quick_sort(a,j+1,r);

}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    cin>>a[i];
    for(int i=1;i<=n;i++)
    insert(i,i,a[i]);
    while(m--)
    {cin>>l>>r>>c;
    insert(l,r,c);
    }
    for(int i=1;i<=n;i++)
    b[i]+=b[i-1];
    quick_sort(b,0,n);
    cout<<b[1];

    return 0;
}

by heyx0201 @ 2023-09-28 23:43:13

@hehe123313 31行的 insert(i,i,a[i]) 看不懂。。。直接 b[i] = a[i] - a[i - 1] 不就可以了吗。。。


by heyx0201 @ 2023-09-28 23:45:20

@hehe123313 排序从 1 开始。。。不然输出永远都是0。。。


by heyx0201 @ 2023-09-29 08:32:19

@hehe123313 数组开小了


|