分析:绝对值不等式
code:
#include <bits/stdc++.h>
using namespace std;
struct Node{
int x , t ;
bool operator < (Node no1){
return x < no1.x ;
}
};
int b[20000100] ;
vector<Node>v[2];
//绝对值不等式模块
long long Dis(const int *a,int n){
long long int re = 0;
for(int i=0;i<n/2;i++){
re = re + a[n-1-i]-a[i];
}
return re ;
}
signed main() {
//freopen("in","r",stdin);
int n;
scanf("%d",&n);
int x , y , t ;
for(int i = 1 ; i <= n ; i++) {
scanf("%d%d%d",&x,&y,&t);
v[0].push_back({x,t});
v[1].push_back({y,t});
}
sort(v[0].begin(),v[0].end());
sort(v[1].begin(),v[1].end());
long long int ans = 0 ; int idx ;
for(int i = 0 ; i < 2 ; i++){
idx = 0 ;
for(auto it : v[i]){
int cc = it.t ;
while(cc--){
b[idx++] = it.x ;
}
}
ans = ans + Dis(b,idx) ;
}
cout << ans << endl ;
return 0;
}