牛能和宝石
题目描述
牛能有 n n n 件装备和 n n n 颗宝石,第 i i i 件装备的重量为 a i a_i ai ,第 i i i 颗宝石的重量为 b i b_i bi,牛能要给每一件装备都嵌上一颗宝石,当牛能给第 i i i件装备嵌上第 j j j 颗宝石后,装备的重量会变为 a i + b j a_i+b_j ai+bj,牛能对装备的厌恶度为所有装备中重量的最大值。你作为牛能的好朋友,决定帮助牛能给装备嵌上宝石,使得牛能对装备的厌恶度尽可能的小。
输入描述:
第一行一个整数 n n n
第二行 n n n个整数 a 1 a_1 a1 a 2 a_2 a2 … \dots … a n a_n an
第三行 n n n个整数 b 1 b_1 b1 b 2 b_2 b2 … \dots … b n b_n bn
输出描述:
输出一个整数表示嵌上宝石后小灰灰对装备的厌恶度。
示例1
输入
5
1 2 3 4 5
5 4 3 2 1
输出
6
说明
- 1≤ n , a i , b i n,a_i,b_i n,ai,bi≤100000
思路:贪心 + 排序 |
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e5 + 50;
int a[N],b[N],n;
int main(){
cin>>n;
for(int i = 0; i < n; i++) cin >> a[i];
for(int i = 0; i < n; i++) cin >> b[i];
sort(a,a+n); sort(b,b+n,greater<int>());
int res = 0;
for(int i = 0; i < n; i++) res = max(res,a[i]+b[i]);
cout<<res<<endl;
return 0;
}