题解 P3051 【[USACO12MAR]Haybale Restacking】
ShineEternal
2019-10-05 19:02:24
[如有显示不完整请点击这里](https://blog.csdn.net/kkkksc03/article/details/102164718)
## description:
![在这里插入图片描述](https://img-blog.csdnimg.cn/201910051857512.png)
## solution:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191005185809232.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2tra2tzYzAz,size_16,color_FFFFFF,t_70)
## code:
```cpp
#include<cstdio>
#include<algorithm>
using namespace std;
int a[100005],b[100005],c[100005];
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a[i],&b[i]);
}
for(int i=2;i<=n;i++)
{
c[i]=c[i-1]+b[i]-a[i];
}
sort(c+1,c+n+1);
int tmp=c[(n+1)/2];
int x=-tmp;
long long ans=0;
for(int i=1;i<=n;i++)
{
ans+=abs(c[i]+x);
}
printf("%lld\n",ans);
return 0;
}
```