题解 P3051 【[USACO12MAR]Haybale Restacking】

ShineEternal

2019-10-05 19:02:24

Solution

[如有显示不完整请点击这里](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; } ```