P1781 宇宙总统

题目背景

宇宙总统竞选

题目描述

地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。

输入输出格式

输入格式:

president.in

第一行为一个整数n,代表竞选总统的人数。

接下来有n行,分别为第一个候选人到第n个候选人的票数。

输出格式:

president.out

共两行,第一行是一个整数m,为当上总统的人的号数。

第二行是当上总统的人的选票。

输入输出样例

输入样例#1:复制
5
98765
12365
87954
1022356
985678
输出样例#1:复制
4
1022356

说明

票数可能会很大,可能会到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;
}


posted @ 2018-05-08 16:21  神探小小狄  阅读(127)  评论(0编辑  收藏  举报
【推荐】 程序员网址大全  |  EF CodeFirst  |  百度地图.NET  |  MyNPOI  |  开源  |  我的皮肤  |  ASP.NET MVC4  |  前端提升   |  LINQ   |  WCF   |  EasyUI  | aaronyang 页脚html代码