CCCherry

导航

牛客寒假训练营6 补题

链接:https://ac.nowcoder.com/acm/contest/3007/A
来源:牛客网
A配对

题目描述

现在有正整数集合 A 和 B,每个集合里有 N 个数,你要建立他们间的一一映射
将每对配对的数字相加可以得到 N 个和,你要做的就是最大化第 K 大的和
1≤K≤N≤100,000 输入的所有数字不超过 108

输入描述:

第一行 2 个数字 N,K
接下来两行,每行 N 个正整数,分别表示 A 和 B 中的元素

输出描述:

一行,表示第 K 大的和的最大值
示例1

输入

复制
3 2
1 2 3
1 2 3

输出

复制
5

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 int main()
 5 {
 6     long long n,k,a[100005],b[100005];
 7     cin>>n>>k;
 8     for(int i=0;i<n;i++)
 9         cin>>a[i];
10     for(int i=0;i<n;i++)
11         cin>>b[i];
12     sort(a,a+n);
13     sort(b,b+n);
14     long long ans=1000000000;
15     for(int i = n-1; i > n-1 - k; i --)
16         ans = min(ans, a[i] + b[2*n-k-i-1]);
17     cout<<ans;
18         
19     
20 }

 

posted on 2020-02-15 21:15  CCCherry  阅读(187)  评论(0)    收藏  举报