10pts求条
查看原帖
10pts求条
772875
RAY091016楼主2024/12/26 20:10

可过样例

#include <bits/stdc++.h>
using namespace std;
int n;
__int128 ans;
struct building{
	int l,r,h;
}a[40400];
bool cmp(building x,building y){
	return x.l<y.l;
}
void write(int x){
	if(x>9){
		write(x/10);
	}
	putchar(x%10+'0');
}
signed main(){
	freopen("P2061_2.in","r",stdin);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].l>>a[i].r>>a[i].h;
		ans+=(a[i].r-a[i].l)*a[i].h;
	}
	sort(a+1,a+1+n,cmp);
	int nr=a[1].r;
	for(int i=2;i<n;i++){
		if(a[i].r>nr){
			if(a[i].l<=nr){
				ans-=min(a[i].h,a[i-1].h)*(nr-a[i].l);
			}
			nr=a[i].r;
		}
		else{
			ans-=min(a[i].h,a[i-1].h)*(a[i].r-a[i].l);
		}
	}
	write(ans);
	return 0;
}
2024/12/26 20:10
加载中...