POJ 2092 Grandpa is Famous【水---找出现第二多的数】
链接:
Time Limit: 2000MS | Memory Limit: 30000K | |
Total Submissions: 7210 | Accepted: 3650 |
Description
The International Bridge Association (IBA) has maintained, for several years, a weekly ranking of the best players in the world. Considering that each appearance in a weekly ranking constitutes a point for the player, grandpa was nominated the best player ever
because he got the highest number of points.
Having many friends who were also competing against him, grandpa is extremely curious to know which player(s) took the second place. Since the IBA rankings are now available in the internet he turned to you for help. He needs a program which, when given a list
of weekly rankings, finds out which player(s) got the second place according to the number of points.
Input
ranking (2 <= M <= 500). Each of the next N lines contains the description of one weekly ranking. Each description is composed by a sequence of M integers, separated by a blank space, identifying the players who figured in that weekly ranking. You can assume
that:
- in each test case there is exactly one best player and at least one second best player,
- each weekly ranking consists of M distinct player identifiers.
The end of input is indicated by N = M = 0.
Output
of all second best players in increasing order. Each identification number produced must be followed by a blank space.
Sample Input
- 4 5
- 20 33 25 32 99
- 32 86 99 25 10
- 20 99 10 33 86
- 19 33 74 99 32
- 3 6
- 2 34 67 36 79 93
- 100 38 21 76 91 85
- 32 23 85 31 88 1
- 0 0
Sample Output
- 32 33
- 1 2 21 23 31 32 34 36 38 67 76 79 88 91 93 100
Source
Code:
- /**************************************************************
- D Accepted 284 KB 204 ms C++ 1604 B
- 题意:第一行给你 N 和 M
- 剩下的 N 行 M 列, 给你 N*M 个数
- 找出所有出现次数第二多的数, 并且按照从小到大顺序输出。
- **************************************************************/
- #include<stdio.h>
- #include<string.h>
- #include<algorithm>
- using namespace std;
- const int maxn = 10000+10;
- int a[maxn];
- struct Node{
- int num;
- int index;
- }node[maxn];
- bool cmp(Node a, Node b)
- {
- if(a.num == b.num) return a.index < b.index;
- else return a.num > b.num;
- }
- int main()
- {
- int n,m;
- while(scanf("%d%d", &n,&m) != 0)
- {
- if(n == 0 && m == 0) break;
- int x;
- int Max = 0;
- for(int i = 0; i < maxn; i++)
- {
- a[i] = 0;
- node[i].num = 0;
- node[i].index = 0;
- }
- int N = n*m;
- for(int i = 0; i < N; i++)
- {
- scanf("%d", &x);
- a[x]++;
- Max = max(Max, x);
- }
- N = Max+1;
- //printf("Max = %d\n", Max);
- int j = 0;
- for(int i = 1; i < N; i++)
- {
- if(a[i] != 0)
- {
- node[j].num = a[i];
- node[j].index = i;
- j++;
- }
- }
- sort(node,node+j,cmp);
- N = j;
- int s = node[0].num; //printf("s1 = %d\n", s);
- int index = 0;
- for(int i = 0; i < N; i++)
- {
- if(node[i].num < s)
- {
- s = node[i].num;
- index = i;
- break;
- }
- }
- //printf("s2 = %d\n", s);
- for(int i = index; i < N; i++)
- {
- if(node[i].num == s)
- {
- printf("%d ", node[i].index);
- }
- else if(node[i].num > s) break;
- }
- printf("\n");
- }
- return 0;
- }
POJ 2092 Grandpa is Famous【水---找出现第二多的数】的更多相关文章
- POJ 2092 Grandpa is Famous
Grandpa is Famous Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 7153 Accepted: 3624 ...
- Poj 2092 Grandpa is Famous(基数排序)
题目链接:http://poj.org/problem?id=2092 思路分析:先统计数据,在根据Count降序排序,Count相等时按照Num升序排序:再输出Count第二大的所有Num: 代码如 ...
- (使用STL自带的排序功能进行排序7.3.2)POJ 2092 Grandpa is Famous(结构体排序)
/* * POJ_2092.cpp * * Created on: 2013年11月1日 * Author: Administrator */ #include <iostream> #i ...
- poj 3080 Blue Jeans(水题 暴搜)
题目:http://poj.org/problem?id=3080 水题,暴搜 #include <iostream> #include<cstdio> #include< ...
- Leetcode 860. 柠檬水找零
860. 柠檬水找零 显示英文描述 我的提交返回竞赛 用户通过次数187 用户尝试次数211 通过次数195 提交次数437 题目难度Easy 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾 ...
- LeetCode:柠檬水找零【860】
LeetCode:柠檬水找零[860] 题目描述 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向 ...
- 【LeetCode】860. 柠檬水找零
860. 柠檬水找零 知识点:贪心 题目描述 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 ...
- 找第k大的数
(找第k大的数) 给定一个长度为1,000,000的无序正整数序列,以及另一个数n(1<=n<=1000000),接下来以类似快速排序的方法找到序列中第n大的数(关于第n大的数:例如序列{ ...
- c# 各种排序算法+找第二大的数+句子单词反转
冒泡排序 // 冒泡排序 bubble sort public static int[] BubbleSort(int []array) { bool isContinue = true; ; i & ...
随机推荐
- Manthan, Codefest 16 D. Fibonacci-ish(暴力)
题目链接:点击打开链接 题意:给你n个数, 问最长的题目中定义的斐波那契数列. 思路:枚举開始的两个数, 由于最多找90次, 所以能够直接暴力, 用map去重. 注意, 该题卡的时间有点厉害啊. ...
- [转]解决Docker容器时间与主机不一致问题
原文: https://blog.csdn.net/luckystar689/article/details/76572046 https://stackoverflow.com/questions/ ...
- Java取得操作系统的临时目录
一般来说,程序员用Eclipse在Windows上编程,而会将war/ear包发布到Linux的服务器上. 涉及临时文件输出的话需要找一个临时目录,下面的语句就能帮你获得不分操作系统的临时目录 Str ...
- SurfaceView实现拍照预览
一.布局代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro ...
- Linux非阻塞IO(六)使用poll实现非阻塞的服务器端
关于poll模型监听的事件以及返回事件,我们定义宏如下: #define kReadEvent (POLLIN | POLLPRI) #define kWriteEvent (POLLOUT | PO ...
- flask和pymongo的完美搭配
1.如何进行mongo数据库的链接 import pymongo client = pymongo.MongoClient(host='192.168.*.*', port=27017,) db_au ...
- 关于XSuperMES项目使用的PDF框架
我在曾经的项目中使用的是pdfbox.在读取中文文档时能够读出大部分的文字,可是在数字.分页等地方还是不可避免的出现乱码. 于是我在网上搜索,看有没有什么解决方法.看到有说法: "PDFBo ...
- 【VBA】VBA编写的,将一列中相同的内容的行提取出来单独生成文件
数据如上图所示,点击RUN后的运行结果如下: 得到该文件夹,文件夹内容如上图. 代码如下: Private Sub Command_OLIVER() Dim arr arr = Range(" ...
- CentOS6.8 搭建SVN并用钩子自动实现同步到web目录
一 安装 yum install subversion 二 检查是否安装成功 svn --version 三 创建仓库目录 mkdir –p /home/svnroot/test 四 创建项目 svn ...
- <转>Windows平台下Makefile学习笔记(二)
本文转自:http://blog.csdn.net/clever101/article/details/8286066 上次我们学习了怎么用Makefile编译一个控制台工程.这次我们学习一下如何使用 ...