地球历公元 6036 年,全宇宙准备竞选一个最贤能的人当总统,共有 n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。
第一行为一个整数 n,代表竞选总统的人数。
接下来有 n 行,分别为第一个候选人到第 n 个候选人的票数。
共两行,第一行是一个整数 m,为当上总统的人的号数。
第二行是当上总统的人的选票。
输入 #1复制
5 98765 12365 87954 1022356 985678
输出 #1复制
4 1022356
票数可能会很大,可能会到 100 位数字。
1≤n≤20
#include<iostream> #include<cstring>//头文件 using namespace std; int main() { int n,max,now,num;//ans是最终答案,max是最高票数的位数,now是当前票数的位数,num是最终答案的号码 string s,ans; cin>>n; cin>>s; max=s.size(); ans=s; num=1; for(int i=2;i<=n;i++) { cin>>s; now=s.size();//重新赋值 if(max<now) { max=s.size(); ans=s; num=i;//更新数据 }//位数比较 if(max==now) { for(int j=1;j<=max;j++) { if(s[j]>ans[j]) { ans=s; num=i;//更新数据 break; } if(s[j]<ans[j]) break;//不要漏下 } }//数字比较 } cout<<num<<endl<<ans; return 0; }