本文主要是介绍耍杂技的牛,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
时间限制:1秒 内存限制:128M
题目描述
农夫约翰有N头牛,编号1~N,计划表演杂技叠罗汉,表演时奶牛们站在彼此的身上,形成一个高高的垂直堆叠。奶牛们师徒找到自己所处的位置顺序。
每头奶牛都有自己的重量Wi和自己的强壮程度Si。
一头牛支撑不住的可能性取决于它头上所有牛的总重量(不包括自己)减去自己的身体强壮程度,这个值称为风险值,风险值越大,这只牛撑不住的可能性越高。
我们需要确定奶牛的顺序,使得所有奶牛的风险值中的最大值尽可能的小。
输入描述
第一行一个整数 ,表示奶牛的数量。
接下来N行,每行两个整数Wi和Si
输出描述
输出一个整数,表示最大风险值的最小可能值。
输入样例
3
10 3
2 5
3 3
输出描述
2
数据范围
1 <= N <= 50000
1 <= Wi <= 10,000
1 <= Si <= 1,000,000,000
#include<cmath>
#include<cstdio>
#include<string>
#include<cstring>
#include<iomanip>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e5+10;
struct node{int w;int s;
}a[N];
bool cmp(node x,node y){return x.w <y.w ;
}
int main(){int n;cin>>n;for(int i=1;i<=n;i++){cin>>a[i].w >>a[i].s ;a[i].w +=a[i].s ;}sort(a+1,a+n+1,cmp);long long ans=-1e5,sum=0;for(int i=1;i<=n;i++){ans=max(ans,sum-a[i].s );sum+=a[i].w -a[i].s ;}cout<<ans;return 0;}
这篇关于耍杂技的牛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!