链接:https://www.nowcoder.com/acm/contest/85/J
おみやげをまらいました!
蛙蛙还是给你带来了礼物。但它有个小小的要求,那就是你得在石头剪刀布上赢过它才能拿到礼物哦!
你们这样规定:有三个字符串 ,表示三种出拳种类,其中 可以打败 , 可以打败 , 可以打败 。 现在根据你的观察,你已经知道了蛙蛙心想的出拳顺序,你需要安排自己的出拳顺序,使得你能在每一局中都获胜。
“焼きまんじゅう”、“ういろう”、“⽡せんべい”、“福だるま”、“⽉うさぎのボタン”……
输入描述:
前三行每行两个字符串,每行
,表示
能打败
。
数据保证不互相矛盾,且其中有恰好三种不同的字符串。
接下去一个数
,表示
次对战。
接下去
行每行一个字符串,表示蛙蛙的出拳种类。注意,蛙蛙的出拳可能不合法(即不是三种字符串中的),这时请输出
。
输出描述:
共
行,每行一个字符串,表示每一局你需要出什么。
如果对手出的不合法,输出
。
备注:
思路:使用 STL 中 map 存储游戏规则,主键为被战胜的字符串,值为战胜的字符串
AC代码:
1 #include <map> 2 #include <string> 3 #include <iostream> 4 using namespace std; 5 int main(){ 6 7 map<string,string> mmp; 8 string ss1,ss2; 9 for(int i=0;i<3;i++){ 10 cin>>ss1>>ss2; 11 mmp[ss2]=ss1; 12 } 13 int n; 14 cin>>n; 15 for(int i=0;i<n;i++){ 16 string ss; 17 cin>>ss; 18 if(!mmp.count(ss)) 19 cout<<"Fake"<<endl; 20 else 21 cout<<mmp[ss]<<endl; 22 } 23 24 return 0; 25 }