记录编号 115097 评测结果 AAAAAAAAAA
题目名称 灰色头像 最终得分 100
用户昵称 GravatarBokjan 是否通过 通过
代码语言 C++ 运行时间 0.347 s
提交时间 2014-08-13 19:36:49 内存使用 0.31 MiB
显示代码纯文本
#include <fstream>
#include <string>
#include <map>
#include <vector>
#include <algorithm>
std::map<std::string, int> map;
std::vector<std::pair<std::string, int> > list;
std::vector<std::string> out;
namespace std
{
	ifstream fin("gray.in");
	ofstream fout("gray.out");
}
bool comp(std::pair<std::string, int> a, std::pair<std::string, int> b)
{
	if(a.second == b.second)
		return a.first < b.first;
	else
		return a.second > b.second;
}
int main(void)
{
	int n;
	std::fin >> n;
	while(n--)
	{
		std::string str;
		std::fin >> str;
		map[str]++;
	}
	for(std::map<std::string, int>::iterator ite = map.begin(); ite != map.end(); ite++)
		list.push_back(std::make_pair(ite->first, ite->second));
	std::sort(list.begin(), list.end(), comp);
	int m = 0;
	for(std::vector<std::pair<std::string, int> >::iterator ite = list.begin(); ite != list.end(); ite++)
		if(ite->second >= 3)
		{
			m++;
			out.push_back(ite->first);
		}
	std::fout << m << std::endl;
	for(std::vector<std::string>::iterator ite = out.begin(); ite != out.end(); ite++)
		std::fout << *ite << std::endl;
	std::fin.close();
	std::fout.close();
	return 0;
}