題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=4296
思路:題意就不說了啊,看懂題目中的一句話就好了,比賽時的,一個小思路,也沒有絕對的驗證過對或錯,就是讓每一個小方塊放在最底下一層,算出其PDV,最小的一個PDV就是正解了。
代碼:
#include<stdio.h>
__int64 ans;
__int64 sum;
int a[100005][2];
int main()
{
int i;
int n;
while(scanf("%d",&n)!=EOF)
{
sum = 0;
ans = 10000000000;
for(i=0;i<n;i++)
{
scanf("%d%d",&a[i][0],&a[i][1]);
sum += a[i][0];
}
for(i=0;i<n;i++)
{
if(sum-a[i][0]-a[i][1] < ans)
ans = sum-a[i][0] - a[i][1];
}
if(ans < 0)
printf("0\n");
else
printf("%I64d\n",ans);
}
return 0;
}