admin 管理员组

文章数量: 887021

洛谷:宇宙总统,C++

题目描述

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

输入格式

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

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

输出格式

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

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

输入输出样例

输入 #1复制

5
98765
12365
87954
1022356
985678

输出 #1复制

4
1022356

说明/提示

票数可能会很大,可能会到 100 位数字。

11 ≤ n ≤ 20

思路:

高精度,我们就是说要用字符串

排序,我们依旧采用sort结构体排序 (有1说1,C++用起来真的比C要方便狠多)

对于字符串排序,这里我们使用strcmp()函数  

算是 C与C++混合用法吧

代码:

#include<bits/stdc++.h>
using namespace std;struct peak{int ID;char piao[1000];int length; 
};struct peak arr[20];
int n;bool cmp(struct peak arr1,struct peak arr2)
{if(arr1.length > arr2.length)//先比较长度return 1;else if(arr1.length < arr2.length)return 0;else//长度相同,逐个比较{if(strcmp(arr1.piao,arr2.piao) > 0)return 1;else if(strcmp(arr1.piao,arr2.piao) > 0)return 0;}		
}int main()
{cin >> n;for(int i = 0;i < n;i ++){arr[i].ID = i+1;cin >> arr[i].piao;arr[i].length = strlen(arr[i].piao);}sort(arr,arr+n,cmp);cout << arr[0].ID << endl << arr[0].piao;return 0;
}

收获:

字符串比较用strcmp()函数,但strcmp函数是C语言里的,相对应字符串就得定义成字符数组

本文标签: 洛谷宇宙总统 c