洛谷P5601-小D与笔试(字符串处理)

题目背景:

小D是一位即将参加 ION 的 IO 选手,然而笔试题库中数量繁多的奇怪题目让他大伤脑筋,快来帮帮他!

题目描述:

笔试题库可以抽象为 nnn 道题目,每道题目由题面和答案组成,都是一个字符串,保证所有题目题面互不相同。

为了检验小D背笔试的效果,教练进行了一次模拟考试,考试包含 qqq 道题目,每道题目都有 444 个选项,小D需要从 444 个选项中选出与答案相符的选项。

现在你需要帮助小D完成这场考试。

输入格式:

第一行两个正整数 n,qn, qn,q。

接下来 nnn 行,每行 222 个用空格分隔的字符串,表示这道题目的题面和答案。

接下来 qqq 行,每行 555 个用空格分隔的字符串,第一个字符串表示模拟考试中这道题目的题面,其余 444 个字符串按顺序分别为这道题目的选项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  

说明/提示:

数据范围

令 s 为输入中字符串长度的最大值。

对于 30% 的数据,n,q,s≤10。

对于另 20%的数据,s=1。

对于 100%的数据,n,q,s≤100,所有字符串都由小写拉丁字母组成。

AC Code:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main() {
	int n,q;
	cin>>n>>q;
	string a[110],b[110];
	for(int i=1;i<=n;i++) {
		cin>>a[i]>>b[i];
	}
	for(int i=1;i<=q;i++) {
		string s,str1,str2,str3,str4;
		cin>>s>>str1>>str2>>str3>>str4;
		int k;
		for(int j=1;j<=n;j++) {
			if(s==a[j]) {
				k=j;
				break;
			}
		}
		if(str1==b[k]) {
			cout<<"A"<<endl;
		}
		if(str2==b[k]) {
			cout<<"B"<<endl;
		}
		if(str3==b[k]) {
			cout<<"C"<<endl;
		}
		if(str4==b[k]) {
			cout<<"D"<<endl;
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43823808/article/details/107513716
今日推荐