37 lines
836 B
Plaintext
37 lines
836 B
Plaintext
|
#!/usr/bin/python3
|
||
|
|
||
|
import sys
|
||
|
import re
|
||
|
|
||
|
sciezki = {};
|
||
|
stanyakceptujace = [];
|
||
|
f = open(sys.argv[1], "r");
|
||
|
lines = f.readlines();
|
||
|
for line in lines:
|
||
|
answer = re.match('^([0-9]+) ([0-9]+) ([a-z]*)$', line);
|
||
|
if answer:
|
||
|
try:
|
||
|
try:
|
||
|
sciezki[answer.group(1)][answer.group(3)].add(answer.group(2));
|
||
|
except KeyError:
|
||
|
sciezki[answer.group(1)][answer.group(3)] = {answer.group(2)};
|
||
|
except KeyError:
|
||
|
sciezki.update({answer.group(1):{}})
|
||
|
sciezki[answer.group(1)][answer.group(3)] = {answer.group(2)};
|
||
|
else:
|
||
|
stanyakceptujace.append(line[:-1]);
|
||
|
for input in sys.stdin.readlines():
|
||
|
act = {str(0)};
|
||
|
for char in input[:-1]:
|
||
|
tca = set();
|
||
|
for z in act:
|
||
|
try:
|
||
|
tca.update(sciezki[z][char]);
|
||
|
except KeyError:
|
||
|
pass;
|
||
|
act = tca;
|
||
|
if len(act.intersection(stanyakceptujace))>0:
|
||
|
print("YES")
|
||
|
else:
|
||
|
print("NO")
|