牛客寒假训练营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
输出
复制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 }
浙公网安备 33010602011771号