题目描述
今天是最后一次周赛,也是小Z的生日,小Z想参加这场周赛并且做出所有题目,来给自己一个最好的生日礼物,这道题就是他周赛遇到的最简单的一道题。
给定一个数组a,里面有n个数字,定义美好数字为a数组中不存在的最小的非负数,比如数组{2,5,8}中的美好数字就是0,数组{0,1,2,5}中的美好数字就是3。
现在再给出一个数组b,里面有m个数,你可以将数组b中的至多k个数移动到a数组中,来增大a数组中美好数字的大小,求最大的美好数字。
输入
第一行输入n,m,k分别代表a数组,b数组的元素个数和k的大小
第二行输入n个数,代表数组a中的元素
第三行输入m个数,代表数组b中的元素
1<=n<=1000,0<=m<=1000,0<=k<=m,0<=ai<=1000,0<=bi<=1000;
输出
仅输出一行,表示最大的美好数字
样例输入
4 3 2
1 3 4 6
0 5 7
样例输出
签到题.
#include<bits/stdc++.h>
using namespace std;
int main(){
int n, m, k;
int arr[1005];
memset(arr, 0 ,sizeof(arr));
cin >> n >> m >> k;
int a, brr[m];
for(int i = 0; i < n; i++){
cin >> a;
arr[a] = 1;
}
for(int i = 0; i < m; i++){
cin >> brr[i];
}
sort(brr, brr+m);
for(int i = 0, j = 0; i < m; i++){
if( arr[brr[i]] == 0){
arr[brr[i]] = 1;
j++;
}
if(j >= k){
break;
}
}
for(int i = 0; i < 1005;i++){
if(arr[i] == 0){
cout << i ;
break;
}
}
}