P1781 宇宙总统
题目背景
宇宙总统竞选
题目描述
地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。
输入输出格式
输入格式:president.in
第一行为一个整数n,代表竞选总统的人数。
接下来有n行,分别为第一个候选人到第n个候选人的票数。
输出格式:president.out
共两行,第一行是一个整数m,为当上总统的人的号数。
第二行是当上总统的人的选票。
输入输出样例
说明
票数可能会很大,可能会到100位数字。
n<=20
题解1:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
using namespace std;
struct node{
int num;
string s;
}a[105];
bool cmp(node a,node b){
if(a.s.size()==b.s.size())
return a.s>b.s;
else return a.s.size()>b.s.size();
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
cin>>a[i].s;
a[i].num=i;
}
sort(a+1,a+n+1,cmp);
printf("%d\n",a[1].num);;
cout<<a[1].s<<endl;
return 0;
}
题解2:#include<iostream>
using namespace std;
int main()
{
int n;
int number;
string max="";
string in;
cin >> n;
for (int i = 0; i < n; i++){
cin >> in;
int inSize = in.size();
int maxSize = max.size();
if (inSize > maxSize || (inSize >= maxSize && in > max)){
max = in;
number = i + 1;
}
}
cout << number << '\n' << max << '\n';
return 0;
}
浙公网安备 33010602011771号