hduOJ(2019-2022)

2019 数列有序!

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

Problem Description

有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。

Input

输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。

Output

对于每个测试实例,输出插入新的元素后的数列。

Sample Input

3 3
1 2 4
0 0

Sample Output

1 2 3 4

Submit
#include<stdio.h>

int main()
{
	int n, m, val;
	while(~scanf("%d%d", &n, &m))
	{
		if(m==0 && n==0)
			break;
		if(n==0)
		{
			printf("%d\n", m);
			break;
		}
		else
		{
			int i, j, flag = 1;
			for(i = 0; i<n; i++)
			{
				scanf("%d", &val);
				if(flag && val >= m)
				{
					if(i == 0)
						printf("%d", m);
					else
						printf(" %d", m);
					flag = 0;
				}
				if(i>0 || !flag)
					printf(" ");
				printf("%d" ,val);
			}
			printf("\n");
		}
	}
}

2020 绝对值排序

Problem Description

输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。

Input

输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。

Output

对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。

Sample Input

3 3 -4 2
4 0 1 2 -3
0

Sample Output

-4 3 2
-3 2 1 0

Submit
#include<stdio.h>
#include<math.h>

void sort(int a[], int n)
{
	int i,j;
	for(i=n-1; i>0; i--)
		for(j=1; j<=i; j++)
			if(abs(a[j-1]) < abs(a[j])){
				int temp = a[j-1];
				a[j-1] = a[j];
				a[j] = temp;
			}
}

int main()
{
	int n;
	int a[100];
	while(~scanf("%d", &n))
	{
		if(n == 0)
			break;
		int i,j;
		for(i=0; i<n; i++)
		{
			scanf("%d", &a[i]);	
		}
		sort(a, n);
		for(i=0; i<n-1; i++)
			printf("%d ", a[i]);
		printf("%d\n", a[n-1]);
	} 
	return 0;
}

2021 发工资咯:)

Problem Description

作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵
但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?
这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。

Input

输入数据包含多个测试实例,每个测试实例的第一行是一个整数n(n<100),表示老师的人数,然后是n个老师的工资。
n=0表示输入的结束,不做处理。

Output

对于每个测试实例输出一个整数x,表示至少需要准备的人民币张数。每个输出占一行。

Sample Input

3
1 2 3
0

Sample Output

4

Submit
#include<stdio.h>

int main()
{
	int bill[] = {100, 50, 10, 5, 2, 1};
	int billcount = sizeof(bill)/sizeof(int);
	int n,count,m,i,j;
	while(~scanf("%d", &n))
	{
		if(n == 0)
			break;
		count = 0;
		for(i=0; i<n; i++)
		{
			scanf("%d", &m);
			for(j=0; j<billcount; j++)
			{
				if(m == 0)
					break;
				count += m/bill[j];
				m = m % bill[j];
			}
		}
		printf("%d\n", count);
	}
 } 

2022 海选女主角

Problem Description

potato老师虽然很喜欢教书,但是迫于生活压力,不得不想办法在业余时间挣点外快以养家糊口。
“做什么比较挣钱呢?筛沙子没力气,看大门又不够帅…”potato老师很是无奈。
“张艺谋比你还难看,现在多有钱呀,听说还要导演奥运开幕式呢!你为什么不去娱乐圈发展呢?”lwg在一旁出主意。
嗯,也是,为了生存,就委屈点到娱乐圈混混吧,马上就拍一部激光电影《杭电记忆——回来我的爱》。
说干就干,马上海选女主角(和老谋子学的,此举可以吸引媒体的眼球,呵呵),并且特别规定,演员必须具有ac的基本功,否则直接out!
由于策划师风之鱼(大师级水王)宣传到位,来应聘的MM很多,当然包括nit的蛋糕妹妹等呼声很高的美女,就连zjut的jqw都男扮女装来应聘(还好被安全顾问hdu_Bin-Laden认出,给轰走了),看来娱乐圈比acm还吸引人哪…
面试那天,刚好来了mn个MM,站成一个mn的队列,副导演Fe(OH)2为每个MM打了分数,分数都是32位有符号整数。
一开始我很纳闷:分数怎么还有负的?Fe(OH)2解释说,根据选拔规则,头发染成黄色、化妆太浓、穿的太少等等都要扣分数的,扣的多了就可能是负分了,当然,如果发现话语中夹有日语,就直接给-2147483648分了。
分数送上来了,是我做决定的时候了,我的一个选拔原则是,要选一个面试分数绝对值(必须还是32位整数)最大的MM。
特别说明:如果不幸选中一个负分的MM,也没关系,因为我觉得,如果不能吸引你,那要想法恶心你。

Input

输入数据有多组,每组的第一行是两个整数m和n,表示应聘MM的总共的行列数,然后是m行整数,每行有n个,m和n的定义见题目的描述。

Output

对于每组输入数据,输出三个整数x,y和s,分别表示选中的MM的行号、列号和分数。
note:行号和列号从一开始,如果有多个MM的分数绝对值一样,那么输出排在最前面的一个(即行号最小的那个,如果行号相同则取列号最小的那个)。

Sample Input

2 3
1 4 -3
-7 3 0

Sample Output

2 1 -7

Submit
#include<stdio.h>
#include<math.h>

int main()
{
	int n,m,i,j,val,max,maxi,maxj;
	while(~scanf("%d%d", &m, &n))
	{
		max = 0;
		maxi = 1;
		maxj = 1;
		for(i=1; i<=m; i++)
			for(j=1; j<=n; j++)
			{
				scanf("%d", &val);
				if(abs(val)>abs(max))
				{
					max = val;
					maxi = i;
					maxj = j;
				}
			}
		printf("%d %d %d\n", maxi, maxj, max);		
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值