DEV-C++上测都是对的,洛谷上却全RE......
查看原帖
DEV-C++上测都是对的,洛谷上却全RE......
475192
lonelystar楼主2022/1/19 16:12
#include<bits/stdc++.h>
using namespace std;
int n,m,k,d[10002],t1[10002],ans,d2[10002];
struct edge{
	int num,sum;
}d1[10002];
struct node{
	int t,a,b;
}p[10005];
bool cmp(edge x,edge y){
	return x.sum>=y.sum;
}
int main(){
	cin>>n>>m>>k;
	for(int i=1;i<n;i++){
		cin>>d[i];
		d1[i].num=i;
	}
	for(int i=1;i<=m;i++){
		cin>>p[i].t>>p[i].a>>p[i].b;
		d2[p[i].a]=max(d2[p[i].a],p[i].t);
		for(int i=p[i].a;i<p[i].b;i++)
			d1[i].sum++;
	}
	sort(d1+1,d1+n+1,cmp);
	for(int i=1;i<n;i++){
		d[d1[i].num]-=min(d[d1[i].num],k);
		k-=min(d[d1[i].num],k);
		if(!k)break;
	}
	for(int i=1;i<=n;i++)
		d2[i]=max(d2[i],d2[i-1]+d[i-1]);
	for(int i=1;i<=n;i++)
		t1[i]=d2[i-1]+d[i-1];
	for(int i=1;i<=m;i++)
		ans+=(t1[p[i].b]-p[i].t);
	cout<<ans;
	return 0;
}
/*
10 5 0
5 7 2 4 8 2 8 3 1
10 3 4
1 1 3
33 6 9
14 4 8
1 1 4
*/
/*
73
*/
//测试点1 
2022/1/19 16:12
加载中...