「Luogu P5601」小D与笔试
题目链接
\(Solution\)
这道题官方题解的做法太复杂了,还需要扫字符串。
其实只需要两个\(map\)就好了.
一个\(map<string,stirng>\)用来记录题目一个题面的答案是什么
一个\(map<string,char>\)用来记录答案是\("A","B","C","D"\)中的哪个
然后直接输出就好了,详细见代码
#include<bits/stdc++.h>
#define rg register
#define file(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout);
using namespace std;
int read(){
int x=0,f=1;char c=getchar();
while(c<'0'||c>'9') f=(c=='-')?-1:1,c=getchar();
while(c>='0'&&c<='9') x=x*10+c-48,c=getchar();
return f*x;
}
map<string,char> s;
map<string,string> ss;
string c,cc;
int main(){
int n=read(),q=read();
for(int i=1;i<=n;i++)
cin>>c>>cc,ss[c]=cc;
while(q--){
cin>>c;
for(int i=0;i<4;i++)
cin>>cc,s[cc]=i+'A';
cout<<s[ss[c]]<<endl;
s.clear();
}
}