#T0006. 徐老师的错误提示(check)

徐老师的错误提示(check)

题目描述

众所周知,对于初学 C++ 的同学来说,最常见的错误就是编译错误

而对于很多初学者的编译错误,往往是因为语法命令拼写错误

于是这天徐老师准备升级一下 OJ 的系统,当同学的代码出现编译错误时,自动判定是否出现了语法拼写错误,如果存在错误,则提示错误

为了适配各种语法,徐老师会给你 nn 个基础语法表(每个语法用一个字符串表示)

接着徐老师会给出一个同学代码中的一个语句(用字符串 SS 表示)

这里徐老师认为情况只有四种:

  1. 这个语句没有错误(即在徐老师给出的语法表中可以查到这个语法)
  2. 这位同学多写了一个字母,比如把 forfor 打成了 forrforr
  3. 这位同学少写了一个字母,比如把 forfor 打成了 frfr
  4. 这位同学把其中的一个字母写错了,比如把 forfor 打成了 farfar

现在徐老师需要你的代码对以上四种情况进行判定

输入格式

输入第一行,包含一个整数 nn 表示基础语法表的语法数量

接下来 nn 行,每行包含一个字符串 SiS_i,表示一个基础语法

n+1n + 1 行包含一个字符串 QQ,表示这次要进行判定的同学代码

输出格式

输出分三种情况:

  1. 若语句没有错误,则输出 PerfectPerfect
  2. 若可以满足 2,3,42,3,4 三种错误情况,则输出正确的语法语句(如果有多个语法满足条件,则输出语法表中最靠前的那个,即编号最小的那个)
  3. 若不满足以上情况,则输出 ErrorError

数据范围

以下用 S|S| 表示字符串长度

对于 40%40\% 的数据,1Si50,N1001 \leq |S_i| \leq 50, N \leq 100,其中有 10%10\% 的数据答案为 PerfectPerfect

对于 100%100\% 的数据,1Si,Q1000,N10001 \leq |S_i|,|Q| \leq 1000, N \leq 1000,其中有 10%10\% 的数据答案为 ErrorError

特别的,题目保证对于所有字符串,仅包含小写字母,且 QSi108|Q| * \sum{S_i} \leq 10^8

样例输入1

3
for
main
while
fr

样例输出1

for

样例输入2

3
for
main
while
whlle

样例输出2

while

样例输入3

3
for
main
while
mian

样例输出

Error