目录

题目描述

输入格式

输出格式

输入输出样例

说明/提示 

分析思路:

源代码:

ps:


题目描述

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

输入格式

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

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

输出格式

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

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

输入输出样例

输入 

5
98765
12365
87954
1022356
985678

输出 

4
1022356

说明/提示 

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

分析思路:

这题和奖学金那道题目简直一模一样,用cmp自定义排序方式后用sort排序,我只能大呼一句STL牛逼

源代码:

#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
struct person
{
	string piao;//存放票数
	int no = 0;//存放编号
};
bool cmp(person a, person b)
{
	if (a.piao.size() != b.piao.size())
		return a.piao.size() > b.piao.size();//如果位数不同,多位者胜
	return a.piao > b.piao;//位数相同看字典序
}
int main()
{
	int n;
	cin >> n;
	vector<person> a;
	person one;
	for (int i = 0; i < n; ++i)
	{
		cin >> one.piao;
		one.no = i + 1;
		a.push_back(one);
	}
	sort(a.begin(),a.end(),cmp);
	cout << a[0].no << endl << a[0].piao;
	return 0;
}

ps:

不过还是有个小细节的,就是这里的cmp传入的是结构体,那么结构体的定义应该在函数定义之前,这个属于是函数的知识了,否则无法正常的调用sort函数。 

 

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐