题目背景
小 D 是一位即将参加 ION 的 IO 选手,然而笔试题库中数量繁多的奇怪题目让他大伤脑筋,快来帮帮他!
题目描述
笔试题库可以抽象为 nn 道题目,每道题目由题面和答案组成,都是一个字符串,保证所有题目题面互不相同。
为了检验小 D 背笔试的效果,教练进行了一次模拟考试,考试包含 q 道题目,每道题目都有 4 个选项,小 D 需要从 4 个选项中选出与答案相符的选项。
现在你需要帮助小 D 完成这场考试。
输入格式
第一行两个正整数 n, q。
接下来 n 行,每行 2 个用空格分隔的字符串,表示这道题目的题面和答案。
接下来 q 行,每行 5 个用空格分隔的字符串,第一个字符串表示模拟考试中这道题目的题面,其余 4 个字符串按顺序分别为这道题目的选项 A 到选项 D,保证选项各不相同。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <map>
using namespace std;
char ou[4]={
'A','B','C','D'};//打表,方便输出
map<string,string>ans;//字符串映射字符串
int n,q;
int main()
{
int i,j,k;
cin>>n>>q;
for(i=1;i<=n;i++)
{
string x,y;
cin>>x>>y;
ans[x]=y;//映射关系
}
for(i=1;i<=q;i++)
{
string x;
cin>>x;
string an=ans[x];//先存好答案
for(j=1;j<=4;j++)
{
string y;
cin>>y;
if(an==y)
{
cout<<ou[j-1]<<endl;
}
}
}
return ^.^;//完美结束
}
and
#include<bits/stdc++.h>
using namespace std;
int n,m;
string s1,s2;//题面与答案
map<string,string> a;
char c[]={
' ','A','B','C','D'};//预处理选项
int main()
{
cin>>n>>m;
for(int i=1;i<=n;++i)
{
cin>>s1>>s2;
a[s1]=s2;//保存答案
}
for(int i=1;i<=m;++i)
{
cin>>s1;
for(int j=1;j<=4;++j)
{
cin>>s2;
if(s2==a[s1]) cout<<c[j]<<endl;//注意输出答案后不要break掉,因为要输入满4个
}
}
return 0;
}