1644 Cow Acrobats TZC

  

Cow Acrobats

时间限制(普通/Java):1000MS/10000MS     运行内存限制:65536KByte
总提交: 7            测试通过: 3

http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1644

描述

Farmer John's N (1 <= N <= 50,000) cows (numbered 1..N) are planning to run away and join the circus. Their hoofed feet prevent them from tightrope walking and swinging from the trapeze (and their last attempt at firing a cow out of a cannon met with a dismal failure). Thus, they have decided to practice performing acrobatic stunts.

The cows aren't terribly creative and have only come up with one acrobatic stunt: standing on top of each other to form a vertical stack of some height. The cows are trying to figure out the order in which they should arrange themselves within this stack.

Each of the N cows has an associated weight (1 <= W_i <= 10,000) and strength (1 <= S_i <= 1,000,000,000). The risk of a cow collapsing is equal to the combined weight of all cows on top of her (not including her own weight, of course) minus her strength (so that a stronger cow has a lower risk). Your task is to determine an ordering of the cows that minimizes the greatest risk of collapse for any of the cows.

 

输入

* Line 1: A single line with the integer N.

* Lines 2..N+1: Line i+1 describes cow i with two space-separated integers, W_i and S_i.

输出

* Line 1: A single integer, giving the largest risk of all the cows in any optimal ordering that minimizes the risk.

 

样例输入

 

3
10 3
2 5
3 3

 

样例输出

 

2

 

提示

OUTPUT DETAILS:

Put the cow with weight 10 on the bottom. She will carry the other two cows, so the risk of her collapsing is 2+3-3=2. The other cows have lower risk of collapsing.

 

 

 

题目意思是要求最小里最大的。最小是指risk最大在其他排序的risk最小的,而后面这个最大就是选出的最小那种排序里一个cow最大的risk(包含负数)

 贪心我们来试试。

假设:

两组就:

w1 s1

w2 s2

 

那么这种序列母牛各自的risk是:-s1    ,    w1-s2

 

还有种就是:

w2 s2

w1 s1

那么这种序列母牛各自的risk是:-s2    ,    w2-s1

 

我们假设上面那种符合要求:

那么 max(-s1,w1-s2)<max(-s2,w2-s1)

 

现在不知道max里面谁大,所以我们全部假设。

1.假设-s1>w1-s2    -s2>w2-s1

那么-s1<-s2      三式子联立矛盾。

2.-假设-s1>w1-s2    -s2<w2-s1

那么-s1<w2-s1    也矛盾与题目。

3.假设 –s1<w1-s2    -s2>w2-s1

那么  w1-s2<-s2   也与题目矛盾。

4.假设–s1<w1-s2    –s2<w2-s1

那么 w1-s2<w2-s1  w1+s1<s2+w2

所以第四种成立。

所以先对两个和升序排序即可,就是最优 然后在里面求最大的值就行了。

声明:上面非官方证明,只是参考,如果说的不对请提出来~~~谢谢~~

看代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

helihui123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值