时间限制: 1 Sec 内存限制: 128 MB
提交: 0 解决: 34
[提交][状态][命题人:liangsongming]
题目描述
每个人的一生只能认真对待一件事。给定一个整数 n,表示人生中遇到的 n 件事。若认真对待某件事,可以获得的分数分别为a1,a2,…,an,若是只是被动应付,则获得的分数分别为b1,b2,…,bn 。
请选择应该认真对待哪一件事,才能让分数的总和达到最大。
输入
第一行:单个整数表示 n
第二行到第 n+1行:每行两个整数表示 ai与 bi
输出
单个整数:表示最大的分数之和
样例输入
3
1 1
2 0
3 2
样例输出
5
提示
数据范围
对于30% 的数据,1≤n≤5,000;
对于60% 的数据,1≤n≤20,000;
对于 100% 的数据,1≤n≤500,000;0≤bi≤ai≤4000;
#include <bits/stdc++.h>
using namespace std;
int n,a[500005][2],sum,ans;
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i][0]>>a[i][1];
sum+=a[i][1];
}for(int i=0;i<n;i++){
int t=sum;
ans=max(ans,sum+(a[i][0]-a[i][1]));
}cout<<ans;
}