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++ 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1712783621h616484.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论