洛谷-P5601 小D与笔试

洛谷-P5601 小D与笔试

原题链接:https://www.luogu.com.cn/problem/P5601


题目背景

小 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;
}
posted @ 2021-01-29 09:46  yuzec  阅读(130)  评论(0编辑  收藏  举报