程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU 3785 尋找大富翁。

HDU 3785 尋找大富翁。

編輯:C++入門知識

HDU 3785 尋找大富翁。


尋找大富翁

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4169 Accepted Submission(s): 1714



Problem Description 浙江桐鄉烏鎮共有n個人,請找出該鎮上的前m個大富翁.
Input 輸入包含多組測試用例.
每個用例首先包含2個整數n(0 n和m同時為0時表示輸入結束.
Output 請輸出烏鎮前m個大富翁的財產數,財產多的排前面,如果大富翁不足m個,則全部輸出,每組輸出占一行.
Sample Input
3 1
2 5 -1
5 3
1 2 3 4 5
0 0

Sample Output
5
5 4 3

Source 浙大計算機研究生復試上機考試-2009年

 

挺水的一道題,寫了10來分鐘就一遍AC了。

貼個代碼。

 

#include 
#include 
#define wbx 100005  //n的取值為100000 數組要開到10W以上。
int a[wbx];
using namespace std;
#include 
int main()
{
	int n,m,i;
	while(scanf("%d%d",&n,&m)!=EOF,n!=0,m!=0)  //m和n同時為0就直接結束。
	{
		memset(a,0,sizeof(a));
		for(i=1;i<=n;i++)
			scanf("%d",&a[i]);
		sort(a+1,a+1+n);   //  升序。
		if(n=1;i--)
			{
				if(i!=1)
					printf("%d ",a[i]);
				else
					printf("%d\n",a[i]);
			}   
		}
		else   //  否則
		{
			for(i=n;m>0;i--,m--)
			{ 
				if(m==1)          //  m為一的時候輸出最後一人,並且換行。
					printf("%d\n",a[i]);
				else 
					printf("%d ",a[i]);    //否則,降序輸出並且輸出之間有空格。
			}
		}
	}
	return 0;
}

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved