记录编号 |
115097 |
评测结果 |
AAAAAAAAAA |
题目名称 |
灰色头像 |
最终得分 |
100 |
用户昵称 |
Bokjan |
是否通过 |
通过 |
代码语言 |
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;
}