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;
}
还是菜。