码迷,mamicode.com
首页 > 其他好文 > 详细

[FZYZOJ 2148] 小添添的灰机猫

时间:2015-06-12 13:14:31      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

P2148 -- 小添添的灰机猫

时间限制:1000MS

内存限制:131072KB

Description

成功从WTM晋升为ACM的小添添越来越SXBK了,开始将魔爪伸向了自己的灰H机J猫。事情是这样的,小添添有k只猫,分别是0~k-1。他先用rand() % k随机出了N个数,告诉你他需要临幸的灰机猫的编号,如果一只猫多次出现,也只算一次。因为小添添一开始就按照自己喜欢的顺序排好了编号,所以选出来的猫的顺序不能乱。请告诉他他将临幸哪些灰机猫。

Input Format

第一行输入两个正整数N和k,表示有题目中的N和k。

第二行有N个正整数,为rand() % k的结果。

Output Format

第一行一个整数,表示选出的猫的个数。

第二行为选出的猫的编号,数字之间用空格隔开

Sample Input

3 5
2 3 3

Sample Output

2
2 3

Hint

【题解】

这题是一个练习STL_set的好题目啊,特别要学会iterator怎么使用

技术分享
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 set<int> t;
 4 char B[1<<15],*S=B,*T=B;
 5 char getchar2() {
 6     return S==T&&(T=(S=B)+fread(B,1,1<<15,stdin),S==T)?0:*S++;
 7 }
 8 int read2() {
 9     int x=0; int f=1;
10     char ch=getchar2();
11     while(ch<0||ch>9) {if(ch==-) f=-1; ch=getchar2();}
12     while(ch>=0&&ch<=9) {x=(x<<3)+(x<<1)+ch-0; ch=getchar2();}
13     return x*f;
14 }
15 int main() {
16     int n, x;
17     n=read2();read2();
18     for(int k = 0; k < n; k++) {
19         x=read2();
20         t.insert(x);
21     }
22     printf("%d\n", t.size());
23     for(set<int>::iterator i = t.begin(); i != t.end(); i++) printf("%d ", *i);
24 }
View Code

 

[FZYZOJ 2148] 小添添的灰机猫

标签:

原文地址:http://www.cnblogs.com/TonyNeal/p/fzyzoj2148.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!