Cow Acrobats
总提交: 7 测试通过: 3
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1644
描述
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.
输出
样例输入
3
10 3
2 5
3 3
样例输出
2
提示
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
所以第四种成立。
所以先对两个和升序排序即可,就是最优 然后在里面求最大的值就行了。
声明:上面非官方证明,只是参考,如果说的不对请提出来~~~谢谢~~
看代码: