总统"/>
【排序】宇宙总统
【排序】宇宙总统
题目
题目描述
地球历公元 6036 年,全宇宙准备竞选一个最贤能的人当总统,共有 nn 个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。
输入格式
第一行为一个整数 nn,代表竞选总统的人数。
接下来有 nn 行,分别为第一个候选人到第 nn 个候选人的票数。
输出格式
共两行,第一行是一个整数 mm,为当上总统的人的号数。
第二行是当上总统的人的选票。
输入输出样例
输入 #1 复制
5
98765
12365
87954
1022356
985678
输出 #1 复制
4
1022356
说明/提示
票数可能会很大,可能会到 100 位数字。
1≤n≤20
分析
这是个基础题,提示说 数据达到100位数字,
所以我是先按字符串形式读入,然后判断字符串长度,如果只有一个最长,那么直接就是它了。
如果有几个长度相等,那就在判断字符串长度的基本上,再比较字符串首位的大小,大的就是它。
如果首位相等,就继续比第二位。。。第三位。。。。。。。。 ok
代码
#include<iostream>
using namespace std;
#include<algorithm>int n;
struct data{int m;string s;
}d[25];//string a[25];bool cmp(data a,data b){if(a.s.size()!=b.s.size())return a.s.size() >b.s.size();else{int k=0;while(k<a.s.size()){if(a.s[k] != b.s[k]){return a.s[k] > b.s[k];}k++;}}
}int main(){cin>>n;for(int i=0;i<n;i++){cin>>d[i].s;d[i].m = i+1;}sort(d,d+n,cmp);cout<<d[0].m<<endl;cout<<d[0].s<<endl;return 0;
}
更多推荐
【排序】宇宙总统
发布评论