牛客小白月赛1 I おみやげをまらいました 【MAP】

链接:https://www.nowcoder.com/acm/contest/85/J

おみやげをまらいました! 
 
蛙蛙还是给你带来了礼物。但它有个小小的要求,那就是你得在石头剪刀布上赢过它才能拿到礼物哦! 
你们这样规定:有三个字符串   ,表示三种出拳种类,其中   可以打败   ,   可以打败   ,   可以打败   。
现在根据你的观察,你已经知道了蛙蛙心想的出拳顺序,你需要安排自己的出拳顺序,使得你能在每一局中都获胜。

“焼きまんじゅう”、“ういろう”、“⽡せんべい”、“福だるま”、“⽉うさぎのボタン”……

输入描述:

前三行每行两个字符串,每行 

 ,表示 

 能打败 

。 
数据保证不互相矛盾,且其中有恰好三种不同的字符串。 
接下去一个数

,表示 

 次对战。 
接下去

 行每行一个字符串,表示蛙蛙的出拳种类。注意,蛙蛙的出拳可能不合法(即不是三种字符串中的),这时请输出 

 。

输出描述:

 行,每行一个字符串,表示每一局你需要出什么。 
如果对手出的不合法,输出

 。

示例1

输入

复制
stone sci
sci paper
paper stone
4
stone
sci
spock
paper

输出

复制
paper
stone
Fake
sci

备注:

 
思路:使用 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 }

猜你喜欢

转载自www.cnblogs.com/TianyuSu/p/9391572.html