1. 程式人生 > >NBA總冠軍【排序】

NBA總冠軍【排序】

N B A NBA總冠軍

題目描述

又要考試了,LJW決定放鬆一下,就開啟電視,看見籃球賽,他立即想到了每年的NBA總冠軍隊伍。由於複習緊張,他只記起了一部分,記憶的內容是正確的,可能不是按時間順序排列的,記憶的內容可能有重複。

現在請求學過程式設計的你幫助LJW,按時間順序依次輸出總冠軍球隊(不能重複)。(NBA從1947A.D到2009A.D)

輸入

輸入檔案nba.in的第一行是一個整數n(0接下來的n行,每行先是城市名(由大小字母、空格組成),後是時間(由數字組成)。二者之間用空格隔開。

輸出

輸出檔案nba.out共n行,即排序後的NBA總冠軍隊伍。每行先是時間,後是城市名。

輸入樣例

3

Boston 1963

Boston 1959

Philly 1947

輸出樣例

1947 Philly

1959 Boston

1963 Boston

解題思路:

用桶排將每一個字串放進一個數組中,在從最小直到最大值跑一邊,有數輸出,無數就跳過

#include<cstdio>
#include<iostream>
#include<string>
#include<cstring> 
using namespace std;
int n,x,a[2020];
string b[2020],s;
int main()
{
	scanf("%d",&n);
	getchar();
	for (int i=1;i<=n;i++)
	{
		x=0;
		getline(cin,s);
		for (int
j=s.size()-4;j<s.size();j++) x=x*10+s[j]-48;//把字串的數字部分摘下來 s.erase(s.size()-4,4);//把字串的數字部分減去 b[x]=s;//儲存 a[x]=1;//有數 } for (int i=1;i<=2009;i++) if (a[i]) printf("%d ",i),cout<<b[i]<<endl;//輸出 }