dog ogday cat atcay pig igpay froot ootfray loops oopslay atcay ittenkay oopslay
cat eh loops
#include <bits/stdc++.h>
using namespace std;
struct Entry{
string a,b;
}zd[100000];
bool cmp(Entry a,Entry b){ //按照字母升序排序
return a.a<b.a;
}
int main(){
string s1,s2,s;
int num=0;
while(cin>>s1>>s2){
zd[num].a=s2;zd[num].b=s1;
num++;
cin.get(); //去掉回车符
if(cin.peek()==‘\n‘)break; //若读入的是空行
}
sort(zd,zd+num,cmp);
while(cin>>s){
int left=0,right=num;
while(left<=right){
int mid=left+(right-left)/2;
if(s==zd[mid].a){
cout<<zd[mid].b<<endl;
break;
}
else if(s<zd[mid].a)right=mid-1;
else left=mid+1;
}
if(left>right)cout<<"eh"<<endl;
}
return 0;
}
原文:https://www.cnblogs.com/aiqinger/p/12577794.html