小D是一位即将参加 ION 的 IO 选手,然而笔试题库中数量繁多的奇怪题目让他大伤脑筋,快来帮帮他!
笔试题库可以抽象为 \(n\) 道题目,每道题目由题面和答案组成,都是一个字符串,保证所有题目题面互不相同。
为了检验小D背笔试的效果,教练进行了一次模拟考试,考试包含 \(q\) 道题目,每道题目都有 \(4\) 个选项,小D需要从 \(4\) 个选项中选出与答案相符的选项。
现在你需要帮助小D完成这场考试。
第一行两个正整数 \(n, q\)。
接下来 \(n\) 行,每行 \(2\) 个用空格分隔的字符串,表示这道题目的题面和答案。
接下来 \(q\) 行,每行 \(5\) 个用空格分隔的字符串,第一个字符串表示模拟考试中这道题目的题面,其余 \(4\) 个字符串按顺序分别为这道题目的选项A到选项D,保证选项各不相同。
对于模拟考试中的每道题目,输出一个字符表示这道题目答案对应的选项,保证所有题目均有解。
输入
3 4
decoak yes
duliuchutiren nonono
csps noiptg
decoak yes no qwq qaq
csps noiptg noippj noi cspj
decoak qwq qaq yesyes yes
duliuchutiren yes no nono nonono
输出
A
A
D
D
本人致力于写蒟蒻(像我一样)能看懂的题解。
模拟,挺水的,人人可做。
纯模拟,边读边输大法好。
#include<bits/stdc++.h>
int n,q;
struct an{
std::string at;//题面
std::string aa;//答案
}tm[105];//背的题面和答案。
struct zz{
std::string t;//题面
std::string a[5];//选项
}da[105];
char anssc[5]={'1','A','B','C','D'};//直接输出,免得乱搞。
int main()
{
//freopen("in.txt","r",stdin);//测试专用
//freopen("out.txt","w",stdout);
std::cin>>n>>q;//读入
for(int i=1;i<=n;i++)
{
std::cin>>tm[i].at>>tm[i].aa;
}
for(int i=1;i<=q;i++)
{
std::cin>>da[i].t;
int cache=0;//临时存储数据
for(int j=1;j<=n;j++)
{
if(da[i].t==tm[j].at)//找相同的题面
cache=j;
}
for(int j=1;j<=4;j++)
{
std::cin>>da[i].a[j];
if(da[i].a[j]==tm[cache].aa)//找答案
{
std::cout<<anssc[j]<<"\n";//记得回车
}
}
}
return 0;
}
原文:https://www.cnblogs.com/wasonliu/p/11758356.html