首页 > 其他 > 详细

UVA 11462 - Age Sort(计数排序+输入外挂)

时间:2014-01-20 22:52:10      阅读:378      评论:0      收藏:0      [点我收藏+]

B

Age Sort

Input: Standard Input

Output: Standard Output

bubuko.com,布布扣

 

You are given the ages (in years) of all people of a country with at least 1 year of age. You know that no individual in that country lives for 100 or more years. Now, you are given a very simple task of sorting all the ages in ascending order.

 
Input

There are multiple test cases in the input file. Each case starts with an integer (0<n<=2000000), the total number of people. In the next line, there are integers indicating the ages. Input is terminated with a case where = 0. This case should not be processed.

 

Output

For each case, print a line with space separated integers. These integers are the ages of that country sorted in ascending order.

 

Warning: Input Data is pretty big (~  25 MB) so use faster IO.

 

Sample Input                             Output for Sample Input

5

3 4 2 1 5

5

2 3 2 3 1

0

1 2 3 4 5

1 2 2 3 3

Note: The memory limit of this problem is 2 Megabyte Only.


Problem Setter: Mohammad Mahmudur Rahman

Special Thanks: Shahriar Manzoor

题意:给定一些年龄(1-100)去排序输出。

思路:由于不让开很大的数组。那就进行计数排序。加个输入外挂能优化时间。

代码:

#include <stdio.h>
#include <string.h>

const int N = 105;
int n, vis[N];

int Scan()
{
	int res = 0, ch, flag = 0;

	if((ch = getchar()) == ‘-‘)				//判断正负
		flag = 1;

	else if(ch >= ‘0‘ && ch <= ‘9‘)			//得到完整的数
		res = ch - ‘0‘;
	while((ch = getchar()) >= ‘0‘ && ch <= ‘9‘ )
		res = res * 10 + ch - ‘0‘;

	return flag ? -res : res;
}

void init() {
	int num = 0;
	for (int i = 0; i < n; i++) {
		num = Scan();
		vis[num]++;
	}
}

void solve() {
	int bo = 0;
	for (int i = 1; i <= 100; i++) {
		while (vis[i]) {
			if (bo++) printf(" ");
			printf("%d", i);
			vis[i]--;
		}
	}
	printf("\n");
}

int main() {
	while (~scanf("%d", &n) && n) {
		init();
		solve();
	}
	return 0;
}


UVA 11462 - Age Sort(计数排序+输入外挂)

原文:http://blog.csdn.net/accelerator_/article/details/18465967

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!