1 条题解

  • 0
    @ 2023-3-30 22:02:03

    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
    上传者