您的位置:首页 > 其它

厦大oj1438简单题、map

2013-04-18 21:42 190 查看
#include<iostream>
#include <map>
#include <string>
#include <fstream>
using namespace std;

int main(){
map<string, int> tongji;
map<string, int>::iterator it;
int shuru1 = 0;
cin>>shuru1;
ifstream ifs("shuju.txt");//
//ifs>>shuru1;//
string shuru2;
int count = 3 * shuru1;
string rank[3];
while(count--){
cin>>shuru2;
//ifs>>shuru2;//
it = tongji.find(shuru2);
if(it == tongji.end()){
tongji[shuru2] = 1;
//tongji.insert(pair<string, int>(shuru2, 1));
}else{
tongji[shuru2]++;
}
}
int max_num;
string max_str;
for(int i = 0; i < 3; i++){
max_num = 0;
for(it = tongji.begin(); it != tongji.end(); it++){
if(it->second > max_num){
max_str = it->first;
max_num = it->second;
}else if(it->second == max_num){
if(it->first < max_str){
max_str = it->first;
}
}
}
if(i == 2){
rank[2] = max_str;
tongji.erase(max_str);
}else if(i == 0){
rank[0] = max_str;
tongji.erase(max_str);
}else if(i == 1){
rank[1] = max_str;
tongji.erase(max_str);
}
}
if(rank[0] > rank[1]){
string temp;
temp = rank[0];
rank[0] = rank[1];
rank[1] = temp;
}
if(rank[0] > rank[2]){
string temp;
temp = rank[0];
rank[0] = rank[2];
rank[2] = temp;
}
if(rank[1] > rank[2]){
string temp;
temp = rank[1];
rank[1] = rank[2];
rank[2] = temp;
}
cout<<rank[0]<<" "<<rank[1]<<" "<<rank[2];
//system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: