核心思路是找mid所在房子,做差并乘
#include<bits/stdc++.h>
using namespace std;
int n,l;
long long md,loc[100005],locr[100005],locnum[100005],sm;
int jd(int a){
if(a>0) return a;
return 0-a;
}
int main(){
cin>>l>>n;
for(int i=1;i<=n;i++){
cin>>loc[i]>>locr[i];
md+=locr[i];
locnum[i]=locr[i]+locnum[i-1];
}
md=ceil(md/2);
for(int i=1;i<=n;i++){
if(locnum[i]>=md){
for(int j=1;j<=n;j++){
sm+=jd(loc[j]-loc[i])*locr[j];
}
break;
}
}
cout<<sm;
return 0;
}