洛谷-P5601 小D与笔试
洛谷-P5601 小D与笔试
题目背景
小 D 是一位即将参加 ION 的 IO 选手,然而笔试题库中数量繁多的奇怪题目让他大伤脑筋,快来帮帮他!
题目描述
笔试题库可以抽象为 \(n\) 道题目,每道题目由题面和答案组成,都是一个字符串,保证所有题目题面互不相同。
为了检验小 D 背笔试的效果,教练进行了一次模拟考试,考试包含 \(q\) 道题目,每道题目都有 \(4\) 个选项,小 D 需要从 \(4\) 个选项中选出与答案相符的选项。
现在你需要帮助小 D 完成这场考试。
输入格式
第一行两个正整数 \(n, q\)。
接下来 \(n\) 行,每行 \(2\) 个用空格分隔的字符串,表示这道题目的题面和答案。
接下来 \(q\) 行,每行 \(5\) 个用空格分隔的字符串,第一个字符串表示模拟考试中这道题目的题面,其余 \(4\) 个字符串按顺序分别为这道题目的选项 A 到选项 D,保证选项各不相同。
输出格式
对于模拟考试中的每道题目,输出一个字符表示这道题目答案对应的选项,保证所有题目均有解。
输入输出样例
输入 #1
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
输出 #1
A
A
D
D
说明/提示
【数据范围】
令 \(s\) 为输入中字符串长度的最大值。
对于 \(30 \%\) 的数据,\(n, q, s \le 10\)。
对于另 \(20 \%\) 的数据,\(s = 1\)。
对于 \(100 \%\) 的数据,\(n, q, s \le 100\),所有字符串都由小写拉丁字母组成。
C++代码
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int n, q;
cin >> n >> q;
char ans[q];
string a[n][2], b[q][5];
for (int i=0; i<n; ++i)
cin >> a[i][0] >> a[i][1];
for (int i=0; i<q; ++i)
for (int j=0; j<5; ++j)
cin >> b[i][j];
for (int i=0; i<q; ++i)
for (int j=0; j<n; ++j)
if (a[j][0] == b[i][0]) {
for (int k=1; k<5; ++k)
if (a[j][1] == b[i][k]) {
ans[i] = k-1+'A';
break;
}
break;
}
for (int i=0; i<q; ++i)
cout << ans[i] << endl;
return 0;
}