admin 管理员组文章数量: 1086019
总冠军
> Description
有一部分内容(先是城市名(由大小字母、空格组成),后是时间(由数字组成)),可能不是按时间顺序排列的,内容可能有重复。
按时间顺序依次输出(不能重复)。
> Input
第一行是一个整数n(0接下来的n行,每行先是城市名(由大小字母、空格组成),后是时间(由数字组成)。二者之间用空格隔开。
> Output
共n行,即排序后的总冠军队伍。每行先是时间,后是城市名。
> Sample Input
3
Boston 1963
Boston 1959
Philly 1947
> Sample Output
1947 Philly
1959 Boston
1963 Boston
> 解题思路
这一道题就是输入的时候要注意一下,然后还要注意的是:城市名很有可能中间有空格,而且输入的年份和城市有可能会重复输入。我就是忘记判断重复了所以才拿了50分。
> 代码
#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
using namespace std;
int lil=0,aka,tt,ll,t[4000],n,len;
string l,a[4000];
char s[1000];
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){len=0; ll=1; aka=0;do{scanf("%c",&s[++len]);}while(s[len]<'0'||s[len]>'9');cin>>l;tt=l.size();for(int j=1;j<=tt;j++,ll*=10)aka+=(l[tt-j]-'0')*ll;if(a[(s[len]-'0')*ll+aka]==""){t[++lil]=(s[len]-'0')*ll+aka;for(int j=2;j<len;j++) a[t[lil]]+=s[j];}}sort(t+1,t+1+lil);for(int i=1;i<=lil;i++)cout<<t[i]<<" "<<a[t[i]]<<endl;return 0;
}
本文标签: 总冠军
版权声明:本文标题:总冠军 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1687607083a120429.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论