首页 > 代码库 > POJ 2643

POJ 2643

map 水题

 1 #include <map> 2 #include <cstdio> 3 #include <iostream> 4 #include <string.h> 5 #include <cstring> 6 #include <string> 7 using namespace std; 8 map<string,int > a; 9 map<string,string> b;10 11 int main(){12     //freopen("test.txt","r",stdin);13     int n,m;14     char s1[85],s2[85];15     scanf("%d",&n);16     getchar();17     for(int i=0;i<n;i++){18         cin.getline(s1,85,\n);19         cin.getline(s2,85,\n);20         a[s1]=1;21         b[s1]=s2;22     }23     scanf("%d",&m);24     getchar();25     int max1=0,count1=0;26     string st;27     for(int i=0;i<m;i++){28         cin.getline(s1,85,\n);29         if(a[s1]==0)continue;30         a[s1]++;31         if(a[s1]==max1)count1++;32         if(a[s1]>max1){33             max1=a[s1];34             st=b[s1];35             count1=1;36         }37     }38     if(count1==1){39         cout<<st<<endl;40     }41     else cout<<"tie"<<endl;42 43 }

 

#include <map>
#include <cstdio>
#include <iostream>
#include <string.h>
#include <cstring>
#include <string>
using namespace std;
map<string,int > a;
map<string,string> b;

int main(){
    freopen("test.txt","r",stdin);
    int n,m;
    char s1[85],s2[85];
    scanf("%d\n",&n);
    //getchar();
    for(int i=0;i<n;i++){
        cin.getline(s1,85,‘\n‘);
        cin.getline(s2,85,‘\n‘);
        a[s1]=1;
        b[s1]=s2;
    }
    scanf("%d\n",&m);
    //getchar();
    int max1=0,count1=0;
    string st;
    for(int i=0;i<m;i++){
        cin.getline(s1,85,‘\n‘);
        if(a[s1]==0)continue;
        a[s1]++;
        if(a[s1]==max1)count1++;
        if(a[s1]>max1){
            max1=a[s1];
            st=b[s1];
            count1=1;
        }
    }
    if(count1==1){
        cout<<st<<endl;
    }
    else cout<<"tie"<<endl;

}