题目链接:

C. Tanya and Toys

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

In Berland recently a new collection of toys went on sale. This collection consists of 109 types of toys, numbered with integers from 1 to109. A toy from the new collection of the i-th type costs i bourles.

Tania has managed to collect n different types of toys a1, a2, ..., an from the new collection. Today is Tanya's birthday, and her mother decided to spend no more than m bourles on the gift to the daughter. Tanya will choose several different types of toys from the new collection as a gift. Of course, she does not want to get a type of toy which she already has.

Tanya wants to have as many distinct types of toys in her collection as possible as the result. The new collection is too diverse, and Tanya is too little, so she asks you to help her in this.

Input

The first line contains two integers n (1 ≤ n ≤ 100 000) and m (1 ≤ m ≤ 109) — the number of types of toys that Tanya already has and the number of bourles that her mom is willing to spend on buying new toys.

The next line contains n distinct integers a1, a2, ..., an (1 ≤ ai ≤ 109) — the types of toys that Tanya already has.

Output

In the first line print a single integer k — the number of different types of toys that Tanya should choose so that the number of different types of toys in her collection is maximum possible. Of course, the total cost of the selected toys should not exceed m.

In the second line print k distinct space-separated integers t1, t2, ..., tk (1 ≤ ti ≤ 109) — the types of toys that Tanya should choose.

If there are multiple answers, you may print any of them. Values of ti can be printed in any order.

Examples
input
3 7
1 3 4
output
2
2 5
input
4 14
4 6 12 8
output
4
7 2 3 1
Note

In the first sample mom should buy two toys: one toy of the 2-nd type and one toy of the 5-th type. At any other purchase for 7 bourles (assuming that the toys of types 1, 3 and 4 have already been bought), it is impossible to buy two and more toys.

题意:

问选没有过的toy能最多选多少个;

思路:

从小到大贪心,用map记录是否已经有过;

AC代码:

/*
2014300227 659C - 50 GNU C++11 Accepted 93 ms 7380 KB
*/
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+;
int n,m,x;
int a[N],ans[N];
map<int,int>mp;
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<n;i++)
{
scanf("%d",&x);
mp[x]=;
}
long long sum=;
int cnt=;
for(int i=;i<=1e9;i++)
{
if(!mp[i])
{
if(sum+(long long)i<=m)
ans[cnt++]=i,sum+=(long long)i;
else
{
break;
}
}
}
printf("%d\n",cnt);
for(int i=;i<cnt;i++)
{
printf("%d ",ans[i]);
} return ;
}

最新文章

  1. java web(六)多个请求对应一个Servlet
  2. 支持向量机(SVM)相关免费学习视频集锦
  3. 替换html元素
  4. HTML基础(一)——一般标签、常用标签和表格
  5. pwd, cd, ls, touch, mkdir, rmdir, rm
  6. android 导入数据(通讯录)
  7. SVM 最大间隔目标优化函数(NG课件2)
  8. [算法]Comparison of the different algorithms for Polygon Boolean operations
  9. 【转】内网yum源搭建
  10. sql server 自定义函数的使用
  11. 李洪强iOS开发之图片拉伸技巧
  12. 《Linear Algebra and Its Applications》-chaper4-向量空间-子空间、零空间、列空间
  13. You don&#39;t have permission to access /phpmyadmin/main.php on this server.
  14. 在SSMS里查看TDS数据包内容
  15. 【转】Install Oracle Jdbc driver in your Maven local repository
  16. C#语言Devdevexpress控件chart在C/S框架中的使用
  17. 开发者的如何优雅的使用OSX
  18. Ubuntu下创建XFS文件系统的LVM
  19. String 的方法总结
  20. 在Android Studio添加本地aar包引用

热门文章

  1. C语言之基本算法32—鞍点
  2. iOS - 贝塞尔曲线,折线,曲线,波浪线
  3. p90x 涵盖了全部方式的健身方式美国经典训练DVD
  4. typedef,结构体,共用体,联合体
  5. request 请求转发
  6. Unix中库的使用
  7. Encoding::CompatibilityError: incompatible character encodings: GBK and UTF-8
  8. iPhone与iPad开发实战读书笔记
  9. Android发送验证码的倒计时button
  10. php字符串中 转义字符 “ ’‘ ” ’ “” ‘ &quot; \’ &#39; &#39; \‘ &quot; &quot; \&quot; &#39;&#39; \ &quot; &quot; 使用