博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeForces659C Tanya and Toys map
阅读量:5320 次
发布时间:2019-06-14

本文共 2573 字,大约阅读时间需要 8 分钟。

Tanya and Toys

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.

 

题目大意:买编号为i的玩具的花费i,现在已经有n (1 ≤ n ≤ 100 000)个玩具,他们的编号是a1,a2...an (1 ≤ ai ≤ 1e9) ,现在有钱m,已经有的玩具不会再买,输出最多买的玩具数,和他们的编号,输出的编号顺序随意,如果有多组解任意输出一组。

思路:肯定是尽可能的拿编号小的,同时已经有的不能拿

注意:开数组模拟肯定会WA,数据到了1e9,用map

 

#include 
using namespace std;map
mpint;int a[200000];int main(){int n, m, i, t, k;scanf("%d%d", &n, &m);for(i=1;i<=n;i++){ scanf("%d", &t); mpint[t] = 1;}long long sum=m;for(k=1,i=1;i<1e9;i++){ if(!mpint[i]){ sum -= i; a[k++]=i; } if(sum<0) break;}printf("%d\n", k-2);for(i=1;i<=k-2;i++) printf("%d ", a[i]);return 0;}

 

转载于:https://www.cnblogs.com/Noevon/p/5351720.html

你可能感兴趣的文章
NTP服务器配置
查看>>
【转】OO无双的blocking/non-blocking执行时刻
查看>>
关于 linux 的 limit 的设置
查看>>
HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)
查看>>
vim中文帮助教程
查看>>
MySQL基础3
查看>>
RxJS & Angular
查看>>
面向对象(多异常的声明与处理)
查看>>
MTK笔记
查看>>
ERROR: duplicate key value violates unique constraint "xxx"
查看>>
激活office 365 的启动文件
查看>>
无法根据中文查找
查看>>
[简讯]phpMyAdmin项目已迁移至GitHub
查看>>
转载 python多重继承C3算法
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
面向对象:反射,双下方法
查看>>
鼠标悬停提示文本消息最简单的做法
查看>>
课后作业-阅读任务-阅读提问-2
查看>>