AT_abc352_c

对于一个巨人 \(i\),当他不在最上面的时候,他能贡献的高度为 \(a_i\)(无论他具体在哪个位置,只要不在最上面)。当他在最上面的时候,他能贡献的高度为 \(b_i\),此时其他巨人能贡献的高度就如前文所述。于是就可以轮流让每个巨人在最上面,计算高度最大值即可。

代码如下:

#include <iostream>
#include <cstdio>
#define int long long

using namespace std;

int a[1000001],b[2000001];
int n,ans,mx,s;

signed main()
{
	cin >> n;
	for( int i = 1 ; i <= n ; i ++ )
		cin >> a[i] >> b[i],s += a[i];
	for( int i = 1 ; i <= n ; i ++ )
		ans = max( ans , s - a[i] + b[i] );
	cout << ans;
	return 0;
}
posted @ 2024-05-18 17:31  liyilang2021  阅读(1)  评论(0编辑  收藏  举报