出题人发现自己要记的密码越来越多,为了解决这个问题,他为每个密码设置了4位数的PIN,通过某种规则去生成对应的密码,这样就可以减轻记忆负担,可是他把有些PIN设置成重复的了,希望你可以帮他删除这些重复的PIN,只剩下不重复的PIN。注意删除后需要保持原来的顺序。如果他原来的PIN全部失效了,请你输出”oh my pins“(不含引号)

输入

一个整数T(代表样例数量,1<=T<=100)
每个样例包含两行,一行是一个整数,代表PIN的数量N(1<=N<=2000),第二行N个整数,代表PIN(四位数,可能包含前导0).

输出

如果还有PIN,包含两行,第一行输出还有多少PIN
第二行输出剩余这些PIN。如果PIN全部失效,请输出”oh my pins“(不含括号,占一行)

关键是找出如何存储这些pin码以及存储表示这些pin码出现的次数,我们这里可以将这些pin码看作是一个int整数,在输出的时候使用 %04d就可以了。

这里我开了两个数组去存储,cnt用来存出现的次数,它的下标是具体的pin码,再用一个p来存储每个pin码;最后用一个vector容器遍历整个cnt并存储cnt == 1的pi。

输出的时候注意,最后一个pin码背后是没有空格的。注意我的代码最后的输出行。

#include<iostream>
#include<algorithm>

using namespace std;

const int N = 10010;

vector<int> solve;
int cnt[N];
int p[N];

int main()
{
    int t;
    scanf("%d", &t);
    
    while(t --)
    {
        solve.clear();
        int n;
        cin >> n;
        
        for(int i = 0; i < N; i ++) cnt[i] = 0;
        
        for(int i = 0; i < n; i ++)
        {
            cin >> p[i];
            cnt[p[i]] ++;
        }
        
        for(int i = 0; i < n; i ++)
            if(cnt[p[i]] == 1) solve.push_back(p[i]);
            
        if(solve.size())
        {
            printf("%d\n%04d", solve.size(), solve[0]); // 解决输出问题
            for(int i = 1; i < solve.size(); i ++)
            printf(" %04d", solve[i]);
            cout << endl;
        }
        
        else puts("oh my pins");
    }
    
    return 0;
}

zzuli 2865相关推荐

  1. bzoj 2865 字符串识别——后缀数组

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2865 做出 ht[ ] 之后,sa[ ] 上每个位置和它前面与后面取 LCP ,其中较大的长 ...

  2. ZZULI - 小新三连(二):小新在努力

    题目链接:http://acm.zzuli.edu.cn/problem.php?id=2482 时间限制: 1 Sec  内存限制: 128 MB 题目描述 在打扑克牌时,小新觉得无聊,于是便和小新 ...

  3. ZZULI - 建国的数学难题

    题目链接:http://acm.zzuli.edu.cn/problem.php?id=2501 时间限制: 1 Sec  内存限制: 128 MB 题目描述 众所周知,建国是一个数学天才,但是今天他 ...

  4. 郑州轻工业大学oj1023C语言答案,郑州轻工业学院(ZZULI) OJ系统第1431题 读数字 解题报告...

    试题 试题链接 Description 以前比赛的时候大家最喜闻乐见的题目大概就是A+B了,但是现在的A+B一个比一个麻烦,基本上不带点儿进制转换数值处理什么的都不好意思说自己是A+B.A+B早已经不 ...

  5. zzuli 1787: 生化危机 (BFS)

    http://acm.zzuli.edu.cn/problem.php?id=1787 1787: 生化危机 Description X博士想造福人类, 研发一种可以再生肢体的药物, 可是很不幸... ...

  6. zzuli 2527: THE END IS COMING!!!!!//最小费用最大流

    zzuli 2527: THE END IS COMING!!!!!//最小费用最大流 时间限制: 1 Sec  内存限制: 256 MB 提交: 24  解决: 7 [提交] [状态] [讨论版] ...

  7. ZZULI - 建国与回文串

    题目链接:http://acm.zzuli.edu.cn/problem.php?id=2500 时间限制: 1 Sec  内存限制: 128 MB 题目描述 建国最近学习了字符串,他对回文串很感兴趣 ...

  8. ZZULI - 小新三连(三):小新在求助

    题目链接:http://acm.zzuli.edu.cn/problem.php?id=2483 时间限制: 1 Sec  内存限制: 128 MB 题目描述 小新回到机房后,刷了很多的题,但是他现在 ...

  9. ZZULI:1077: 空心菱形

    sublime 3(集成插件版下载安装,c++编译设置, java编译设置, python设置) 郑州轻工业大学2020年数据结构练习集 ZZULI-刷题之路 zzulioj_1000-1010 zz ...

最新文章

  1. 杨强教授力荐,快速部署落地深度学习应用的实践手册
  2. Spotify敏捷模式详解三部曲第二篇:研发过程
  3. oracle中姓名取姓氏,Oracle SQL - 解析一個名稱字符串並將其轉換爲第一個姓氏和名字...
  4. python导入pandas具体步骤方法_python导入pandas具体步骤方法-
  5. php 构造骚扰短信发送机(仅供学习与参考,请勿用于非法用途)
  6. 微信小程序运行报错---invoke event
  7. java电脑类的接口_java 一个类实现两个接口的案例
  8. python3基础知识三
  9. m与n的数字运算python_M与N的数学运算
  10. nuxt解决首屏加载慢问题_Nuxt.js超过Vue.js:你什么时候应该使用它,为什么
  11. Spark序列化入门
  12. 嵌入式c语言教程 题库 百度云,嵌入式c语言视频教程尚观主讲视频教程
  13. 关于matlab影像处理imhist直方图均衡化问题
  14. 组建局域网_局域网组建常用的网线种类解读
  15. 怎么解决文件正在使用无法删除----资源监视器
  16. 彻底搞懂瓦片地图拼接原理并附具体实现
  17. w10计算机右键管理,电脑右键新建菜单管理,win10右键新建菜单管理-
  18. 2022年版中国共享单车市场现状调研及投资前景预测报告
  19. 外网访问内网(内网穿透)
  20. datatable隐藏列设置及获取隐藏列的值

热门文章

  1. Word空白页删除小技巧
  2. 低成本的ddos防御方案
  3. 学习笔记之Myeclipse中 报错 Syntax error on token Invalid Regular Expression Options, no accurate correc
  4. 大文件上传最全方案:秒传、断点续传、分片上传
  5. batik详解(5) 转载
  6. 【C语言】指针变量的定义、使用及初始化
  7. 英语论文翻译成中文字数变化
  8. Docker部署Angular+Nginx+uwsgi+Django项目
  9. Android中的缓存处理及异步加载图片类的封装
  10. 2 自动内存管理机制(一)运行时数据区域、垃圾回收算法和垃圾回收器