as
This commit is contained in:
parent
f53e9cb6d6
commit
7534251f7b
3
.idea/.gitignore
vendored
Normal file
3
.idea/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
8
.idea/djfz-2023-s464933n.iml
Normal file
8
.idea/djfz-2023-s464933n.iml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="PYTHON_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
6
.idea/inspectionProfiles/profiles_settings.xml
Normal file
6
.idea/inspectionProfiles/profiles_settings.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<settings>
|
||||||
|
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||||
|
<version value="1.0" />
|
||||||
|
</settings>
|
||||||
|
</component>
|
4
.idea/misc.xml
Normal file
4
.idea/misc.xml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9" project-jdk-type="Python SDK" />
|
||||||
|
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/djfz-2023-s464933n.iml" filepath="$PROJECT_DIR$/.idea/djfz-2023-s464933n.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
11
TaskB00/description.txt
Normal file
11
TaskB00/description.txt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
Read a description of a deterministic finite-state automaton in the AT&T format
|
||||||
|
(without weights) from the file in the first argument.
|
||||||
|
|
||||||
|
Read strings from the standard input.
|
||||||
|
If a string is accepted by the
|
||||||
|
automaton, write YES, otherwise- write NO.
|
||||||
|
|
||||||
|
The program is invoked like this: ./run.py fsa_description.arg < test1.in > test1.out
|
||||||
|
|
||||||
|
POINTS: 3
|
||||||
|
DEADLINE: 2023-10-29 23:59:59
|
16
TaskB00/fsa_description.arg
Normal file
16
TaskB00/fsa_description.arg
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
0 1 x
|
||||||
|
1 2 y
|
||||||
|
2 3 z
|
||||||
|
0 4 y
|
||||||
|
0 4 z
|
||||||
|
1 4 x
|
||||||
|
1 4 z
|
||||||
|
2 4 x
|
||||||
|
2 4 y
|
||||||
|
3 4 x
|
||||||
|
3 4 y
|
||||||
|
3 4 z
|
||||||
|
4 4 x
|
||||||
|
4 4 y
|
||||||
|
4 4 z
|
||||||
|
3
|
65
TaskB00/run.py
Normal file
65
TaskB00/run.py
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# B00 (2021)
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class FSA:
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.initial_state = '0' # zakładamy dla uproszczenia, że initial state = 0
|
||||||
|
self.final_states = set()
|
||||||
|
|
||||||
|
self.transitions = dict()
|
||||||
|
self.alphabet = set()
|
||||||
|
|
||||||
|
def add_transition(self, state_from, state_to, symbol):
|
||||||
|
|
||||||
|
if state_from in self.transitions.keys():
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
else:
|
||||||
|
self.transitions[state_from] = dict()
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
|
||||||
|
def add_final_state(self, state):
|
||||||
|
self.final_states.add(state)
|
||||||
|
|
||||||
|
def get_final_state(self, string):
|
||||||
|
|
||||||
|
current_state = self.initial_state
|
||||||
|
for symbol in string:
|
||||||
|
current_state = self.transitions[current_state][symbol]
|
||||||
|
return current_state
|
||||||
|
|
||||||
|
def accepts(self, string):
|
||||||
|
|
||||||
|
if self.get_final_state(string) in self.final_states:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
fsa = FSA()
|
||||||
|
|
||||||
|
table = open(sys.argv[1])
|
||||||
|
for line in table:
|
||||||
|
line = line.rstrip('\n')
|
||||||
|
if len(line.split('\t')) == 3:
|
||||||
|
a, b, c = line.split('\t')
|
||||||
|
fsa.add_transition(a, b, c)
|
||||||
|
fsa.alphabet.add(c)
|
||||||
|
elif len(line.split('\t')) == 1:
|
||||||
|
fsa.add_final_state(line)
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
for line in sys.stdin:
|
||||||
|
|
||||||
|
line = line.rstrip()
|
||||||
|
for symbol in line:
|
||||||
|
if symbol not in fsa.alphabet:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
if fsa.accepts(line):
|
||||||
|
print('YES')
|
||||||
|
else:
|
||||||
|
print('NO')
|
9
TaskB00/test1.exp
Normal file
9
TaskB00/test1.exp
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
9
TaskB00/test1.in
Normal file
9
TaskB00/test1.in
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
xxyz
|
||||||
|
xyz
|
||||||
|
xy
|
||||||
|
zz
|
||||||
|
xxy
|
||||||
|
yzx
|
||||||
|
|
||||||
|
x
|
||||||
|
xyzz
|
13
TaskB01/description.txt
Normal file
13
TaskB01/description.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Use a deterministic finite-state automaton (FSA) engine from the TaskB00.
|
||||||
|
Create your own FSA description to check whether the string starts with "01" and ends with "01.
|
||||||
|
Save it to fsa_description.arg file.
|
||||||
|
|
||||||
|
The alphabet is "0", "1".
|
||||||
|
|
||||||
|
Read strings from the standard input.
|
||||||
|
If a string is accepted by the
|
||||||
|
automaton, write YES, otherwise- write NO.
|
||||||
|
|
||||||
|
POINTS: 2
|
||||||
|
DEADLINE: 2023-10-29 23:59:59
|
||||||
|
REMAINDER: 1/4
|
13
TaskB01/fsa_description.arg
Normal file
13
TaskB01/fsa_description.arg
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
0 1 0
|
||||||
|
0 5 1
|
||||||
|
1 5 0
|
||||||
|
1 2 1
|
||||||
|
2 3 1
|
||||||
|
2 4 0
|
||||||
|
3 3 1
|
||||||
|
3 4 0
|
||||||
|
4 4 0
|
||||||
|
4 2 1
|
||||||
|
5 5 1
|
||||||
|
5 5 0
|
||||||
|
2
|
65
TaskB01/run.py
Normal file
65
TaskB01/run.py
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# B01 (2021)
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class FSA:
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.initial_state = '0' # zakładamy dla uproszczenia, że initial state = 0
|
||||||
|
self.final_states = set()
|
||||||
|
|
||||||
|
self.transitions = dict()
|
||||||
|
self.alphabet = set()
|
||||||
|
|
||||||
|
def add_transition(self, state_from, state_to, symbol):
|
||||||
|
|
||||||
|
if state_from in self.transitions.keys():
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
else:
|
||||||
|
self.transitions[state_from] = dict()
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
|
||||||
|
def add_final_state(self, state):
|
||||||
|
self.final_states.add(state)
|
||||||
|
|
||||||
|
def get_final_state(self, string):
|
||||||
|
|
||||||
|
current_state = self.initial_state
|
||||||
|
for symbol in string:
|
||||||
|
current_state = self.transitions[current_state][symbol]
|
||||||
|
return current_state
|
||||||
|
|
||||||
|
def accepts(self, string):
|
||||||
|
|
||||||
|
if self.get_final_state(string) in self.final_states:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
fsa = FSA()
|
||||||
|
|
||||||
|
table = open(sys.argv[1])
|
||||||
|
for line in table:
|
||||||
|
line = line.rstrip('\n')
|
||||||
|
if len(line.split('\t')) == 3:
|
||||||
|
a, b, c = line.split('\t')
|
||||||
|
fsa.add_transition(a, b, c)
|
||||||
|
fsa.alphabet.add(c)
|
||||||
|
elif len(line.split('\t')) == 1:
|
||||||
|
fsa.add_final_state(line)
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
for line in sys.stdin:
|
||||||
|
|
||||||
|
line = line.rstrip()
|
||||||
|
for symbol in line:
|
||||||
|
if symbol not in fsa.alphabet:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
if fsa.accepts(line):
|
||||||
|
print('YES')
|
||||||
|
else:
|
||||||
|
print('NO')
|
14
TaskB01/test.exp
Normal file
14
TaskB01/test.exp
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
14
TaskB01/test.in
Normal file
14
TaskB01/test.in
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
01
|
||||||
|
10
|
||||||
|
0101
|
||||||
|
1010
|
||||||
|
011101
|
||||||
|
101010
|
||||||
|
100010
|
||||||
|
0100001
|
||||||
|
|
||||||
|
00110
|
||||||
|
0000
|
||||||
|
10101
|
||||||
|
0
|
||||||
|
1
|
13
TaskB02/description.txt
Normal file
13
TaskB02/description.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Use a deterministic finite-state automaton (FSA) engine from the TaskB00.
|
||||||
|
Create your own FSA description to check whether the string starts with "10" and ends with "10.
|
||||||
|
Save it to fsa_description.arg file.
|
||||||
|
|
||||||
|
The alphabet is "0", "1".
|
||||||
|
|
||||||
|
Read strings from the standard input.
|
||||||
|
If a string is accepted by the
|
||||||
|
automaton, write YES, otherwise- write NO.
|
||||||
|
|
||||||
|
POINTS: 2
|
||||||
|
DEADLINE: 2023-10-29 23:59:59
|
||||||
|
REMAINDER: 2/4
|
13
TaskB02/fsa_description.arg
Normal file
13
TaskB02/fsa_description.arg
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
0 1 1
|
||||||
|
0 3 0
|
||||||
|
1 3 1
|
||||||
|
1 2 0
|
||||||
|
3 3 1
|
||||||
|
3 3 0
|
||||||
|
2 4 1
|
||||||
|
2 5 0
|
||||||
|
4 2 0
|
||||||
|
4 4 1
|
||||||
|
5 5 0
|
||||||
|
5 4 1
|
||||||
|
2
|
65
TaskB02/run.py
Normal file
65
TaskB02/run.py
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
#-*- coding: utf-8 -*-
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class FSA:
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.initial_state = '0' # zakładamy dla uproszczenia, że initial state = 0
|
||||||
|
self.final_states = set()
|
||||||
|
|
||||||
|
self.transitions = dict()
|
||||||
|
self.alphabet = set()
|
||||||
|
|
||||||
|
def add_transition(self, state_from, state_to, symbol):
|
||||||
|
|
||||||
|
if state_from in self.transitions.keys():
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
else:
|
||||||
|
self.transitions[state_from] = dict()
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
|
||||||
|
def add_final_state(self, state):
|
||||||
|
self.final_states.add(state)
|
||||||
|
|
||||||
|
def get_final_state(self, string):
|
||||||
|
|
||||||
|
current_state = self.initial_state
|
||||||
|
for symbol in string:
|
||||||
|
current_state = self.transitions[current_state][symbol]
|
||||||
|
return current_state
|
||||||
|
|
||||||
|
def accepts(self, string):
|
||||||
|
|
||||||
|
if self.get_final_state(string) in self.final_states:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
fsa = FSA()
|
||||||
|
|
||||||
|
table = open(sys.argv[1])
|
||||||
|
for line in table:
|
||||||
|
line = line.rstrip('\n')
|
||||||
|
if len(line.split('\t')) == 3:
|
||||||
|
a, b, c = line.split('\t')
|
||||||
|
fsa.add_transition(a, b, c)
|
||||||
|
fsa.alphabet.add(c)
|
||||||
|
elif len(line.split('\t')) == 1:
|
||||||
|
fsa.add_final_state(line)
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
for line in sys.stdin:
|
||||||
|
|
||||||
|
line = line.rstrip()
|
||||||
|
for symbol in line:
|
||||||
|
if symbol not in fsa.alphabet:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
if fsa.accepts(line):
|
||||||
|
print('YES')
|
||||||
|
else:
|
||||||
|
print('NO')
|
14
TaskB02/test.exp
Normal file
14
TaskB02/test.exp
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
14
TaskB02/test.in
Normal file
14
TaskB02/test.in
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
01
|
||||||
|
10
|
||||||
|
0101
|
||||||
|
1010
|
||||||
|
011101
|
||||||
|
101010
|
||||||
|
100010
|
||||||
|
0100001
|
||||||
|
|
||||||
|
00110
|
||||||
|
0000
|
||||||
|
10101
|
||||||
|
0
|
||||||
|
1
|
1
TaskB02/test.out
Normal file
1
TaskB02/test.out
Normal file
@ -0,0 +1 @@
|
|||||||
|
q
|
14
TaskB03/description.txt
Normal file
14
TaskB03/description.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Use a deterministic finite-state automaton (FSA) engine from the TaskB00.
|
||||||
|
Create your own FSA description to check whether the string contains "0"
|
||||||
|
even number of times.
|
||||||
|
Save it to fsa_description.arg file.
|
||||||
|
|
||||||
|
The alphabet is "0", "1".
|
||||||
|
|
||||||
|
Read strings from the standard input.
|
||||||
|
If a string is accepted by the
|
||||||
|
automaton, write YES, otherwise- write NO.
|
||||||
|
|
||||||
|
POINTS: 2
|
||||||
|
DEADLINE: 2023-10-29 23:59:59
|
||||||
|
REMAINDER: 3/4
|
5
TaskB03/fsa_description.arg
Normal file
5
TaskB03/fsa_description.arg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
0 0 1
|
||||||
|
0 1 0
|
||||||
|
1 1 1
|
||||||
|
1 0 0
|
||||||
|
0
|
96
TaskB03/run.py
Normal file
96
TaskB03/run.py
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
# B00 (2021)
|
||||||
|
#
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class FSA:
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.initial_state = '0' # zakładamy dla uproszczenia, że initial state = 0
|
||||||
|
self.final_states = set()
|
||||||
|
|
||||||
|
self.transitions = dict()
|
||||||
|
self.alphabet = set()
|
||||||
|
|
||||||
|
def add_transition(self, state_from, state_to, symbol):
|
||||||
|
|
||||||
|
if state_from in self.transitions.keys():
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
else:
|
||||||
|
self.transitions[state_from] = dict()
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
|
||||||
|
def add_final_state(self, state):
|
||||||
|
self.final_states.add(state)
|
||||||
|
|
||||||
|
def get_final_state(self, string):
|
||||||
|
|
||||||
|
current_state = self.initial_state
|
||||||
|
for symbol in string:
|
||||||
|
current_state = self.transitions[current_state][symbol]
|
||||||
|
return current_state
|
||||||
|
|
||||||
|
def accepts(self, string):
|
||||||
|
|
||||||
|
if self.get_final_state(string) in self.final_states:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
fsa = FSA()
|
||||||
|
|
||||||
|
# def build_fsa(self): #, dfa_desciption
|
||||||
|
table = open(sys.argv[1]) # dfa_desciption
|
||||||
|
for line in table:
|
||||||
|
line = line.rstrip('\n')
|
||||||
|
if len(line.split('\t')) == 3:
|
||||||
|
a, b, c = line.split('\t')
|
||||||
|
fsa.add_transition(a, b, c) #self
|
||||||
|
fsa.alphabet.add(c) #self
|
||||||
|
elif len(line.split('\t')) == 1:
|
||||||
|
fsa.add_final_state(line) #self
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
|
||||||
|
# def run_dfa(self): # , input
|
||||||
|
for line in sys.stdin: # open(input)
|
||||||
|
line = line.rstrip()
|
||||||
|
|
||||||
|
line_n = list(line)
|
||||||
|
|
||||||
|
for i in range(len(line_n)):
|
||||||
|
if line_n[i] not in fsa.alphabet: #self
|
||||||
|
line_n[i] = 'x'
|
||||||
|
|
||||||
|
if fsa.accepts(line_n): #self
|
||||||
|
print('YES')
|
||||||
|
else:
|
||||||
|
print('NO')
|
||||||
|
|
||||||
|
# def run_dfa_and_compare(self, input, expected):
|
||||||
|
#
|
||||||
|
# accepts = []
|
||||||
|
#
|
||||||
|
# for line in open(input): # sys.stdin
|
||||||
|
# line = line.rstrip()
|
||||||
|
#
|
||||||
|
# line_n = list(line)
|
||||||
|
#
|
||||||
|
# for i in range(len(line_n)):
|
||||||
|
# if line_n[i] not in self.alphabet:
|
||||||
|
# line_n[i] = 'x'
|
||||||
|
#
|
||||||
|
# if self.accepts(line_n):
|
||||||
|
# accepts.append('YES')
|
||||||
|
# else:
|
||||||
|
# accepts.append('NO')
|
||||||
|
#
|
||||||
|
# i = 0
|
||||||
|
# for line in open(expected):
|
||||||
|
# if line.rstrip() != accepts[i]:
|
||||||
|
# print('Incorrect in line ' + str(i))
|
||||||
|
# return
|
||||||
|
# i = i + 1
|
||||||
|
# print('Correct')
|
14
TaskB03/test.exp
Normal file
14
TaskB03/test.exp
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
NO
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
YES
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
14
TaskB03/test.in
Normal file
14
TaskB03/test.in
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
01
|
||||||
|
10
|
||||||
|
0101
|
||||||
|
1010
|
||||||
|
011101
|
||||||
|
101010
|
||||||
|
100010
|
||||||
|
0100001
|
||||||
|
|
||||||
|
00110
|
||||||
|
0000
|
||||||
|
10101
|
||||||
|
0
|
||||||
|
1
|
14
TaskB04/description.txt
Normal file
14
TaskB04/description.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Use a deterministic finite-state automaton (FSA) engine from the TaskB00.
|
||||||
|
Create your own FSA description to check whether the string contains "0"
|
||||||
|
odd number of times.
|
||||||
|
Save it to fsa_description.arg file.
|
||||||
|
|
||||||
|
The alphabet is "0", "1".
|
||||||
|
|
||||||
|
Read strings from the standard input.
|
||||||
|
If a string is accepted by the
|
||||||
|
automaton, write YES, otherwise- write NO.
|
||||||
|
|
||||||
|
POINTS: 2
|
||||||
|
DEADLINE: 2023-10-29 23:59:59
|
||||||
|
REMAINDER: 0/4
|
5
TaskB04/fsa_description.arg
Normal file
5
TaskB04/fsa_description.arg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
0 1 0
|
||||||
|
0 0 1
|
||||||
|
1 1 1
|
||||||
|
1 0 0
|
||||||
|
1
|
96
TaskB04/run.py
Normal file
96
TaskB04/run.py
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
# B00 (2021)
|
||||||
|
#
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class FSA:
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.initial_state = '0' # zakładamy dla uproszczenia, że initial state = 0
|
||||||
|
self.final_states = set()
|
||||||
|
|
||||||
|
self.transitions = dict()
|
||||||
|
self.alphabet = set()
|
||||||
|
|
||||||
|
def add_transition(self, state_from, state_to, symbol):
|
||||||
|
|
||||||
|
if state_from in self.transitions.keys():
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
else:
|
||||||
|
self.transitions[state_from] = dict()
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
|
||||||
|
def add_final_state(self, state):
|
||||||
|
self.final_states.add(state)
|
||||||
|
|
||||||
|
def get_final_state(self, string):
|
||||||
|
|
||||||
|
current_state = self.initial_state
|
||||||
|
for symbol in string:
|
||||||
|
current_state = self.transitions[current_state][symbol]
|
||||||
|
return current_state
|
||||||
|
|
||||||
|
def accepts(self, string):
|
||||||
|
|
||||||
|
if self.get_final_state(string) in self.final_states:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
fsa = FSA()
|
||||||
|
|
||||||
|
# def build_fsa(self): #, dfa_desciption
|
||||||
|
table = open(sys.argv[1]) # dfa_desciption
|
||||||
|
for line in table:
|
||||||
|
line = line.rstrip('\n')
|
||||||
|
if len(line.split('\t')) == 3:
|
||||||
|
a, b, c = line.split('\t')
|
||||||
|
fsa.add_transition(a, b, c) #self
|
||||||
|
fsa.alphabet.add(c) #self
|
||||||
|
elif len(line.split('\t')) == 1:
|
||||||
|
fsa.add_final_state(line) #self
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
|
||||||
|
# def run_dfa(self): # , input
|
||||||
|
for line in sys.stdin: # open(input)
|
||||||
|
line = line.rstrip()
|
||||||
|
|
||||||
|
line_n = list(line)
|
||||||
|
|
||||||
|
for i in range(len(line_n)):
|
||||||
|
if line_n[i] not in fsa.alphabet: #self
|
||||||
|
line_n[i] = 'x'
|
||||||
|
|
||||||
|
if fsa.accepts(line_n): #self
|
||||||
|
print('YES')
|
||||||
|
else:
|
||||||
|
print('NO')
|
||||||
|
|
||||||
|
# def run_dfa_and_compare(self, input, expected):
|
||||||
|
#
|
||||||
|
# accepts = []
|
||||||
|
#
|
||||||
|
# for line in open(input): # sys.stdin
|
||||||
|
# line = line.rstrip()
|
||||||
|
#
|
||||||
|
# line_n = list(line)
|
||||||
|
#
|
||||||
|
# for i in range(len(line_n)):
|
||||||
|
# if line_n[i] not in self.alphabet:
|
||||||
|
# line_n[i] = 'x'
|
||||||
|
#
|
||||||
|
# if self.accepts(line_n):
|
||||||
|
# accepts.append('YES')
|
||||||
|
# else:
|
||||||
|
# accepts.append('NO')
|
||||||
|
#
|
||||||
|
# i = 0
|
||||||
|
# for line in open(expected):
|
||||||
|
# if line.rstrip() != accepts[i]:
|
||||||
|
# print('Incorrect in line ' + str(i))
|
||||||
|
# return
|
||||||
|
# i = i + 1
|
||||||
|
# print('Correct')
|
14
TaskB04/test.exp
Normal file
14
TaskB04/test.exp
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
YES
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
14
TaskB04/test.in
Normal file
14
TaskB04/test.in
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
01
|
||||||
|
10
|
||||||
|
0101
|
||||||
|
1010
|
||||||
|
011101
|
||||||
|
101010
|
||||||
|
100010
|
||||||
|
0100001
|
||||||
|
|
||||||
|
00110
|
||||||
|
0000
|
||||||
|
10101
|
||||||
|
0
|
||||||
|
1
|
12
TaskB05/description.txt
Normal file
12
TaskB05/description.txt
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
Use a deterministic finite-state automaton (FSA) engine from the TaskB00.
|
||||||
|
Create your own FSA description to check whether the line contains string '19DD', where D is a digit.
|
||||||
|
Save it to fsa_description.arg file.
|
||||||
|
|
||||||
|
FSA alphabet is '0123456789x'.
|
||||||
|
|
||||||
|
Read strings from the standard input.
|
||||||
|
If a string is accepted by the
|
||||||
|
automaton, write YES, otherwise- write NO.
|
||||||
|
|
||||||
|
POINTS: 2
|
||||||
|
DEADLINE: 2023-10-29 23:59:59
|
56
TaskB05/fsa_description.arg
Normal file
56
TaskB05/fsa_description.arg
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
0 0 0
|
||||||
|
0 1 1
|
||||||
|
0 0 2
|
||||||
|
0 0 3
|
||||||
|
0 0 4
|
||||||
|
0 0 5
|
||||||
|
0 0 6
|
||||||
|
0 0 7
|
||||||
|
0 0 8
|
||||||
|
0 0 9
|
||||||
|
0 0 x
|
||||||
|
1 0 0
|
||||||
|
1 0 1
|
||||||
|
1 0 2
|
||||||
|
1 0 3
|
||||||
|
1 0 4
|
||||||
|
1 0 5
|
||||||
|
1 0 6
|
||||||
|
1 0 7
|
||||||
|
1 0 8
|
||||||
|
1 2 9
|
||||||
|
1 0 x
|
||||||
|
2 3 0
|
||||||
|
2 3 1
|
||||||
|
2 3 2
|
||||||
|
2 3 3
|
||||||
|
2 3 4
|
||||||
|
2 3 5
|
||||||
|
2 3 6
|
||||||
|
2 3 7
|
||||||
|
2 3 8
|
||||||
|
2 3 9
|
||||||
|
2 0 x
|
||||||
|
3 4 0
|
||||||
|
3 4 1
|
||||||
|
3 4 2
|
||||||
|
3 4 3
|
||||||
|
3 4 4
|
||||||
|
3 4 5
|
||||||
|
3 4 6
|
||||||
|
3 4 7
|
||||||
|
3 4 8
|
||||||
|
3 4 9
|
||||||
|
3 0 x
|
||||||
|
4 4 0
|
||||||
|
4 4 1
|
||||||
|
4 4 2
|
||||||
|
4 4 3
|
||||||
|
4 4 4
|
||||||
|
4 4 5
|
||||||
|
4 4 6
|
||||||
|
4 4 7
|
||||||
|
4 4 8
|
||||||
|
4 4 9
|
||||||
|
4 4 x
|
||||||
|
4
|
50000
TaskB05/polish_wiki_excerpt_only_digits.exp
Normal file
50000
TaskB05/polish_wiki_excerpt_only_digits.exp
Normal file
File diff suppressed because it is too large
Load Diff
50000
TaskB05/polish_wiki_excerpt_only_digits.in
Normal file
50000
TaskB05/polish_wiki_excerpt_only_digits.in
Normal file
File diff suppressed because one or more lines are too long
96
TaskB05/run.py
Normal file
96
TaskB05/run.py
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
# B00 (2021)
|
||||||
|
#
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class FSA:
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.initial_state = '0' # zakładamy dla uproszczenia, że initial state = 0
|
||||||
|
self.final_states = set()
|
||||||
|
|
||||||
|
self.transitions = dict()
|
||||||
|
self.alphabet = set()
|
||||||
|
|
||||||
|
def add_transition(self, state_from, state_to, symbol):
|
||||||
|
|
||||||
|
if state_from in self.transitions.keys():
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
else:
|
||||||
|
self.transitions[state_from] = dict()
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
|
||||||
|
def add_final_state(self, state):
|
||||||
|
self.final_states.add(state)
|
||||||
|
|
||||||
|
def get_final_state(self, string):
|
||||||
|
|
||||||
|
current_state = self.initial_state
|
||||||
|
for symbol in string:
|
||||||
|
current_state = self.transitions[current_state][symbol]
|
||||||
|
return current_state
|
||||||
|
|
||||||
|
def accepts(self, string):
|
||||||
|
|
||||||
|
if self.get_final_state(string) in self.final_states:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
fsa = FSA()
|
||||||
|
|
||||||
|
# def build_fsa(self): #, dfa_desciption
|
||||||
|
table = open(sys.argv[1]) # dfa_desciption
|
||||||
|
for line in table:
|
||||||
|
line = line.rstrip('\n')
|
||||||
|
if len(line.split('\t')) == 3:
|
||||||
|
a, b, c = line.split('\t')
|
||||||
|
fsa.add_transition(a, b, c) #self
|
||||||
|
fsa.alphabet.add(c) #self
|
||||||
|
elif len(line.split('\t')) == 1:
|
||||||
|
fsa.add_final_state(line) #self
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
|
||||||
|
# def run_dfa(self): # , input
|
||||||
|
for line in sys.stdin: # open(input)
|
||||||
|
line = line.rstrip()
|
||||||
|
|
||||||
|
line_n = list(line)
|
||||||
|
|
||||||
|
for i in range(len(line_n)):
|
||||||
|
if line_n[i] not in fsa.alphabet: #self
|
||||||
|
line_n[i] = 'x'
|
||||||
|
|
||||||
|
if fsa.accepts(line_n): #self
|
||||||
|
print('YES')
|
||||||
|
else:
|
||||||
|
print('NO')
|
||||||
|
|
||||||
|
# def run_dfa_and_compare(self, input, expected):
|
||||||
|
#
|
||||||
|
# accepts = []
|
||||||
|
#
|
||||||
|
# for line in open(input): # sys.stdin
|
||||||
|
# line = line.rstrip()
|
||||||
|
#
|
||||||
|
# line_n = list(line)
|
||||||
|
#
|
||||||
|
# for i in range(len(line_n)):
|
||||||
|
# if line_n[i] not in self.alphabet:
|
||||||
|
# line_n[i] = 'x'
|
||||||
|
#
|
||||||
|
# if self.accepts(line_n):
|
||||||
|
# accepts.append('YES')
|
||||||
|
# else:
|
||||||
|
# accepts.append('NO')
|
||||||
|
#
|
||||||
|
# i = 0
|
||||||
|
# for line in open(expected):
|
||||||
|
# if line.rstrip() != accepts[i]:
|
||||||
|
# print('Incorrect in line ' + str(i))
|
||||||
|
# return
|
||||||
|
# i = i + 1
|
||||||
|
# print('Correct')
|
6
TaskB05/simple.exp
Normal file
6
TaskB05/simple.exp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
YES
|
6
TaskB05/simple.in
Normal file
6
TaskB05/simple.in
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
3214545443
|
||||||
|
1910
|
||||||
|
19
|
||||||
|
xxx2190x
|
||||||
|
xxx21905x
|
||||||
|
1905x54545
|
13
TaskB06/description.txt
Normal file
13
TaskB06/description.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Use a deterministic finite-state automaton (FSA) engine from the previous task.
|
||||||
|
Create your own FSA description to check whether the word "hamlet" is in the given line.
|
||||||
|
Save it to fsa_description.arg file.
|
||||||
|
|
||||||
|
FSA alphabet is 'abcdefghijklmnopqrstuvwxyz '.
|
||||||
|
|
||||||
|
Read strings from the standard input.
|
||||||
|
If a string is accepted by the
|
||||||
|
automaton, write YES, otherwise- write NO.
|
||||||
|
|
||||||
|
POINTS: 3
|
||||||
|
DEADLINE: 2023-10-29 23:59:59
|
||||||
|
REMAINDER: 0/4
|
176
TaskB06/fsa_description.arg
Normal file
176
TaskB06/fsa_description.arg
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
0 0 a
|
||||||
|
0 0 b
|
||||||
|
0 0 c
|
||||||
|
0 0 d
|
||||||
|
0 0 e
|
||||||
|
0 0 f
|
||||||
|
0 0 g
|
||||||
|
0 1 h
|
||||||
|
0 0 i
|
||||||
|
0 0 j
|
||||||
|
0 0 k
|
||||||
|
0 0 l
|
||||||
|
0 0 m
|
||||||
|
0 0 n
|
||||||
|
0 0 o
|
||||||
|
0 0 p
|
||||||
|
0 0 r
|
||||||
|
0 0 s
|
||||||
|
0 0 t
|
||||||
|
0 0 u
|
||||||
|
0 0 v
|
||||||
|
0 0 w
|
||||||
|
0 0 x
|
||||||
|
0 0 y
|
||||||
|
0 0 z
|
||||||
|
1 2 a
|
||||||
|
1 0 b
|
||||||
|
1 0 c
|
||||||
|
1 0 d
|
||||||
|
1 0 e
|
||||||
|
1 0 f
|
||||||
|
1 0 g
|
||||||
|
1 0 h
|
||||||
|
1 0 i
|
||||||
|
1 0 j
|
||||||
|
1 0 k
|
||||||
|
1 0 l
|
||||||
|
1 0 m
|
||||||
|
1 0 n
|
||||||
|
1 0 o
|
||||||
|
1 0 p
|
||||||
|
1 0 r
|
||||||
|
1 0 s
|
||||||
|
1 0 t
|
||||||
|
1 0 u
|
||||||
|
1 0 v
|
||||||
|
1 0 w
|
||||||
|
1 0 x
|
||||||
|
1 0 y
|
||||||
|
1 0 z
|
||||||
|
2 0 a
|
||||||
|
2 0 b
|
||||||
|
2 0 c
|
||||||
|
2 0 d
|
||||||
|
2 0 e
|
||||||
|
2 0 f
|
||||||
|
2 0 g
|
||||||
|
2 0 h
|
||||||
|
2 0 i
|
||||||
|
2 0 j
|
||||||
|
2 0 k
|
||||||
|
2 0 l
|
||||||
|
2 3 m
|
||||||
|
2 0 n
|
||||||
|
2 0 o
|
||||||
|
2 0 p
|
||||||
|
2 0 r
|
||||||
|
2 0 s
|
||||||
|
2 0 t
|
||||||
|
2 0 u
|
||||||
|
2 0 v
|
||||||
|
2 0 w
|
||||||
|
2 0 x
|
||||||
|
2 0 y
|
||||||
|
2 0 z
|
||||||
|
3 0 a
|
||||||
|
3 0 b
|
||||||
|
3 0 c
|
||||||
|
3 0 d
|
||||||
|
3 0 e
|
||||||
|
3 0 f
|
||||||
|
3 0 g
|
||||||
|
3 0 h
|
||||||
|
3 0 i
|
||||||
|
3 0 j
|
||||||
|
3 0 k
|
||||||
|
3 4 l
|
||||||
|
3 0 m
|
||||||
|
3 0 n
|
||||||
|
3 0 o
|
||||||
|
3 0 p
|
||||||
|
3 0 r
|
||||||
|
3 0 s
|
||||||
|
3 0 t
|
||||||
|
3 0 u
|
||||||
|
3 0 v
|
||||||
|
3 0 w
|
||||||
|
3 0 x
|
||||||
|
3 0 y
|
||||||
|
3 0 z
|
||||||
|
4 0 a
|
||||||
|
4 0 b
|
||||||
|
4 0 c
|
||||||
|
4 0 d
|
||||||
|
4 5 e
|
||||||
|
4 0 f
|
||||||
|
4 0 g
|
||||||
|
4 0 h
|
||||||
|
4 0 i
|
||||||
|
4 0 j
|
||||||
|
4 0 k
|
||||||
|
4 0 l
|
||||||
|
4 0 m
|
||||||
|
4 0 n
|
||||||
|
4 0 o
|
||||||
|
4 0 p
|
||||||
|
4 0 r
|
||||||
|
4 0 s
|
||||||
|
4 0 t
|
||||||
|
4 0 u
|
||||||
|
4 0 v
|
||||||
|
4 0 w
|
||||||
|
4 0 x
|
||||||
|
4 0 y
|
||||||
|
4 0 z
|
||||||
|
5 0 a
|
||||||
|
5 0 b
|
||||||
|
5 0 c
|
||||||
|
5 0 d
|
||||||
|
5 0 e
|
||||||
|
5 0 f
|
||||||
|
5 0 g
|
||||||
|
5 0 h
|
||||||
|
5 0 i
|
||||||
|
5 0 j
|
||||||
|
5 0 k
|
||||||
|
5 0 l
|
||||||
|
5 0 m
|
||||||
|
5 0 n
|
||||||
|
5 0 o
|
||||||
|
5 0 p
|
||||||
|
5 0 r
|
||||||
|
5 0 s
|
||||||
|
5 6 t
|
||||||
|
5 0 u
|
||||||
|
5 0 v
|
||||||
|
5 0 w
|
||||||
|
5 0 x
|
||||||
|
5 0 y
|
||||||
|
5 0 z
|
||||||
|
6 6 a
|
||||||
|
6 6 b
|
||||||
|
6 6 c
|
||||||
|
6 6 d
|
||||||
|
6 6 e
|
||||||
|
6 6 f
|
||||||
|
6 6 g
|
||||||
|
6 6 h
|
||||||
|
6 6 i
|
||||||
|
6 6 j
|
||||||
|
6 6 k
|
||||||
|
6 6 l
|
||||||
|
6 6 m
|
||||||
|
6 6 n
|
||||||
|
6 6 o
|
||||||
|
6 6 p
|
||||||
|
6 6 r
|
||||||
|
6 6 s
|
||||||
|
6 6 t
|
||||||
|
6 6 u
|
||||||
|
6 6 v
|
||||||
|
6 6 w
|
||||||
|
6 6 x
|
||||||
|
6 6 y
|
||||||
|
6 6 z
|
||||||
|
6
|
96
TaskB06/run.py
Normal file
96
TaskB06/run.py
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
# B00 (2021)
|
||||||
|
#
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class FSA:
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.initial_state = '0' # zakładamy dla uproszczenia, że initial state = 0
|
||||||
|
self.final_states = set()
|
||||||
|
|
||||||
|
self.transitions = dict()
|
||||||
|
self.alphabet = set()
|
||||||
|
|
||||||
|
def add_transition(self, state_from, state_to, symbol):
|
||||||
|
|
||||||
|
if state_from in self.transitions.keys():
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
else:
|
||||||
|
self.transitions[state_from] = dict()
|
||||||
|
self.transitions[state_from][symbol] = state_to
|
||||||
|
|
||||||
|
def add_final_state(self, state):
|
||||||
|
self.final_states.add(state)
|
||||||
|
|
||||||
|
def get_final_state(self, string):
|
||||||
|
|
||||||
|
current_state = self.initial_state
|
||||||
|
for symbol in string:
|
||||||
|
current_state = self.transitions[current_state][symbol]
|
||||||
|
return current_state
|
||||||
|
|
||||||
|
def accepts(self, string):
|
||||||
|
|
||||||
|
if self.get_final_state(string) in self.final_states:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
fsa = FSA()
|
||||||
|
|
||||||
|
# def build_fsa(self): #, dfa_desciption
|
||||||
|
table = open(sys.argv[1]) # dfa_desciption
|
||||||
|
for line in table:
|
||||||
|
line = line.rstrip('\n')
|
||||||
|
if len(line.split('\t')) == 3:
|
||||||
|
a, b, c = line.split('\t')
|
||||||
|
fsa.add_transition(a, b, c) #self
|
||||||
|
fsa.alphabet.add(c) #self
|
||||||
|
elif len(line.split('\t')) == 1:
|
||||||
|
fsa.add_final_state(line) #self
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
|
||||||
|
|
||||||
|
# def run_dfa(self): # , input
|
||||||
|
for line in sys.stdin: # open(input)
|
||||||
|
line = line.rstrip()
|
||||||
|
|
||||||
|
line_n = list(line)
|
||||||
|
|
||||||
|
for i in range(len(line_n)):
|
||||||
|
if line_n[i] not in fsa.alphabet: #self
|
||||||
|
line_n[i] = 'x'
|
||||||
|
|
||||||
|
if fsa.accepts(line_n): #self
|
||||||
|
print('YES')
|
||||||
|
else:
|
||||||
|
print('NO')
|
||||||
|
|
||||||
|
# def run_dfa_and_compare(self, input, expected):
|
||||||
|
#
|
||||||
|
# accepts = []
|
||||||
|
#
|
||||||
|
# for line in open(input): # sys.stdin
|
||||||
|
# line = line.rstrip()
|
||||||
|
#
|
||||||
|
# line_n = list(line)
|
||||||
|
#
|
||||||
|
# for i in range(len(line_n)):
|
||||||
|
# if line_n[i] not in self.alphabet:
|
||||||
|
# line_n[i] = 'x'
|
||||||
|
#
|
||||||
|
# if self.accepts(line_n):
|
||||||
|
# accepts.append('YES')
|
||||||
|
# else:
|
||||||
|
# accepts.append('NO')
|
||||||
|
#
|
||||||
|
# i = 0
|
||||||
|
# for line in open(expected):
|
||||||
|
# if line.rstrip() != accepts[i]:
|
||||||
|
# print('Incorrect in line ' + str(i))
|
||||||
|
# return
|
||||||
|
# i = i + 1
|
||||||
|
# print('Correct')
|
169442
TaskB06/shakespeare_ascii_lower.exp
Normal file
169442
TaskB06/shakespeare_ascii_lower.exp
Normal file
File diff suppressed because it is too large
Load Diff
169442
TaskB06/shakespeare_ascii_lower.in
Normal file
169442
TaskB06/shakespeare_ascii_lower.in
Normal file
File diff suppressed because it is too large
Load Diff
3
TaskB06/simple.exp
Normal file
3
TaskB06/simple.exp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
NO
|
||||||
|
YES
|
||||||
|
YES
|
3
TaskB06/simple.in
Normal file
3
TaskB06/simple.in
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
haml
|
||||||
|
hamlet
|
||||||
|
aaahamletbbb
|
13
TaskB07/description.txt
Normal file
13
TaskB07/description.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Use a deterministic finite-state automaton (FSA) engine from the previous task.
|
||||||
|
Create your own FSA description to check whether the word "ophelia" is in the given line.
|
||||||
|
Save it to fsa_description.arg file.
|
||||||
|
|
||||||
|
FSA alphabet is 'abcdefghijklmnopqrstuvwxyz '.
|
||||||
|
|
||||||
|
Read strings from the standard input.
|
||||||
|
If a string is accepted by the
|
||||||
|
automaton, write YES, otherwise- write NO.
|
||||||
|
|
||||||
|
POINTS: 3
|
||||||
|
DEADLINE: 2023-10-29 23:59:59
|
||||||
|
REMAINDER: 1/4
|
169442
TaskB07/shakespeare_ascii_lower.exp
Normal file
169442
TaskB07/shakespeare_ascii_lower.exp
Normal file
File diff suppressed because it is too large
Load Diff
3
TaskB07/simple.exp
Normal file
3
TaskB07/simple.exp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
NO
|
||||||
|
YES
|
||||||
|
YES
|
3
TaskB07/simple.in
Normal file
3
TaskB07/simple.in
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
oph
|
||||||
|
ophelia
|
||||||
|
xfdfdopheliafff
|
13
TaskB08/description.txt
Normal file
13
TaskB08/description.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Use a deterministic finite-state automaton (FSA) engine from the previous task.
|
||||||
|
Create your own FSA description to check whether the word "juliet" is in the given line.
|
||||||
|
Save it to fsa_description.arg file.
|
||||||
|
|
||||||
|
FSA alphabet is 'abcdefghijklmnopqrstuvwxyz '.
|
||||||
|
|
||||||
|
Read strings from the standard input.
|
||||||
|
If a string is accepted by the
|
||||||
|
automaton, write YES, otherwise- write NO.
|
||||||
|
|
||||||
|
POINTS: 3
|
||||||
|
DEADLINE: 2023-10-29 23:59:59
|
||||||
|
REMAINDER: 2/4
|
169442
TaskB08/shakespeare_ascii_lower.exp
Normal file
169442
TaskB08/shakespeare_ascii_lower.exp
Normal file
File diff suppressed because it is too large
Load Diff
3
TaskB08/simple.exp
Normal file
3
TaskB08/simple.exp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
NO
|
||||||
|
YES
|
||||||
|
YES
|
3
TaskB08/simple.in
Normal file
3
TaskB08/simple.in
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
juli
|
||||||
|
juliet
|
||||||
|
dgfdgjulietaaa
|
13
TaskB09/description.txt
Normal file
13
TaskB09/description.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Use a deterministic finite-state automaton (FSA) engine from the previous task.
|
||||||
|
Create your own FSA description to check whether the word "macbeth" is in the given line.
|
||||||
|
Save it to fsa_description.arg file.
|
||||||
|
|
||||||
|
FSA alphabet is 'abcdefghijklmnopqrstuvwxyz '.
|
||||||
|
|
||||||
|
Read strings from the standard input.
|
||||||
|
If a string is accepted by the
|
||||||
|
automaton, write YES, otherwise- write NO.
|
||||||
|
|
||||||
|
POINTS: 3
|
||||||
|
DEADLINE: 2023-10-29 23:59:59
|
||||||
|
REMAINDER: 3/4
|
169442
TaskB09/shakespeare_ascii_lower.exp
Normal file
169442
TaskB09/shakespeare_ascii_lower.exp
Normal file
File diff suppressed because it is too large
Load Diff
3
TaskB09/simple.exp
Normal file
3
TaskB09/simple.exp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
NO
|
||||||
|
YES
|
||||||
|
YES
|
3
TaskB09/simple.in
Normal file
3
TaskB09/simple.in
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
macb
|
||||||
|
macbeth
|
||||||
|
xadadamacbethrff
|
14
TaskC00/description.txt
Normal file
14
TaskC00/description.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Read a description of a non-deterministic finite-state automaton in the AT&T format
|
||||||
|
(without weights) from the file in the first argument.
|
||||||
|
|
||||||
|
Read strings from the standard input.
|
||||||
|
If a string is accepted by the
|
||||||
|
automaton, write YES, otherwise- write NO.
|
||||||
|
|
||||||
|
The program is invoked like this: python run.py test1.arg < test1.in > test1.out
|
||||||
|
|
||||||
|
Note that not all transitions must be included in description.
|
||||||
|
If no transition is given for the given state and letter, write NO.
|
||||||
|
|
||||||
|
POINTS: 3
|
||||||
|
DEADLINE: 2023-11-12 23:59:59
|
48
TaskC00/run.py
Normal file
48
TaskC00/run.py
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class FSA:
|
||||||
|
|
||||||
|
def __init__(self,):
|
||||||
|
self.initial_state = '0'
|
||||||
|
self.final_states = set()
|
||||||
|
|
||||||
|
self.transitions = dict()
|
||||||
|
self.alphabet = set()
|
||||||
|
|
||||||
|
def add_transition(self, state_from, state_to, symbol):
|
||||||
|
|
||||||
|
if state_from in self.transitions.keys():
|
||||||
|
if symbol not in self.transitions[state_from].keys():
|
||||||
|
self.transitions[state_from][symbol] = {state_to}
|
||||||
|
else:
|
||||||
|
self.transitions[state_from][symbol] |= {state_to}
|
||||||
|
else:
|
||||||
|
self.transitions[state_from] = dict()
|
||||||
|
self.transitions[state_from][symbol] = {state_to}
|
||||||
|
|
||||||
|
def add_final_state(self, state):
|
||||||
|
self.final_states.add(state)
|
||||||
|
|
||||||
|
|
||||||
|
fsa = FSA()
|
||||||
|
|
||||||
|
table = open(sys.argv[1])
|
||||||
|
for line in table:
|
||||||
|
line = line.rstrip()
|
||||||
|
|
||||||
|
if len(line.split('\t')) == 3:
|
||||||
|
a, b, c = line.split('\t')
|
||||||
|
fsa.add_transition(a, b, c)
|
||||||
|
fsa.alphabet.add(c)
|
||||||
|
else:
|
||||||
|
fsa.add_final_state(line)
|
||||||
|
|
||||||
|
|
||||||
|
for line in sys.stdin:
|
||||||
|
line = line.rstrip()
|
||||||
|
|
||||||
|
if fsa.accepts(line):
|
||||||
|
print('YES')
|
||||||
|
else:
|
||||||
|
print('NO')
|
7
TaskC00/testnfa.arg
Normal file
7
TaskC00/testnfa.arg
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
0 1 a
|
||||||
|
1 0 a
|
||||||
|
1 2 b
|
||||||
|
2 4 c
|
||||||
|
1 3 b
|
||||||
|
3
|
||||||
|
4
|
8
TaskC00/testnfa.exp
Normal file
8
TaskC00/testnfa.exp
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
YES
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
8
TaskC00/testnfa.in
Normal file
8
TaskC00/testnfa.in
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
abc
|
||||||
|
ab
|
||||||
|
abcd
|
||||||
|
aaaabc
|
||||||
|
aaaaaaaabc
|
||||||
|
aaaaaaabc
|
||||||
|
zzz
|
||||||
|
aaaaaaabc
|
0
TaskC00/testnfa.out
Normal file
0
TaskC00/testnfa.out
Normal file
14
TaskC01/description.txt
Normal file
14
TaskC01/description.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Use a non deterministic finite-state automaton (FSA) engine from the TaskC00.
|
||||||
|
Create your own non deterministic FSA description to check whether the string second letter
|
||||||
|
from right is 'b'.
|
||||||
|
Don't use external files like in TaskF00 (description should be included in run file).
|
||||||
|
|
||||||
|
The alphabet is "a", "b", "C"
|
||||||
|
|
||||||
|
Read strings from the standard input.
|
||||||
|
If a string is accepted by the
|
||||||
|
automaton, write YES, otherwise- write NO.
|
||||||
|
|
||||||
|
POINTS: 3
|
||||||
|
DEADLINE: 2023-11-12 23:59:59
|
||||||
|
REMAINDER: 0/3
|
14
TaskC01/nfsa.arg
Normal file
14
TaskC01/nfsa.arg
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
0 1 b
|
||||||
|
0 0 a
|
||||||
|
0 0 c
|
||||||
|
1 2 a
|
||||||
|
1 2 c
|
||||||
|
1 3 b
|
||||||
|
2 1 b
|
||||||
|
3 3 b
|
||||||
|
3 2 a
|
||||||
|
3 2 c
|
||||||
|
2 0 a
|
||||||
|
2 0 c
|
||||||
|
2
|
||||||
|
3
|
48
TaskC01/run.py
Normal file
48
TaskC01/run.py
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class FSA:
|
||||||
|
|
||||||
|
def __init__(self,):
|
||||||
|
self.initial_state = '0'
|
||||||
|
self.final_states = set()
|
||||||
|
|
||||||
|
self.transitions = dict()
|
||||||
|
self.alphabet = set()
|
||||||
|
|
||||||
|
def add_transition(self, state_from, state_to, symbol):
|
||||||
|
|
||||||
|
if state_from in self.transitions.keys():
|
||||||
|
if symbol not in self.transitions[state_from].keys():
|
||||||
|
self.transitions[state_from][symbol] = {state_to}
|
||||||
|
else:
|
||||||
|
self.transitions[state_from][symbol] |= {state_to}
|
||||||
|
else:
|
||||||
|
self.transitions[state_from] = dict()
|
||||||
|
self.transitions[state_from][symbol] = {state_to}
|
||||||
|
|
||||||
|
def add_final_state(self, state):
|
||||||
|
self.final_states.add(state)
|
||||||
|
|
||||||
|
|
||||||
|
fsa = FSA()
|
||||||
|
|
||||||
|
table = open(sys.argv[1])
|
||||||
|
for line in table:
|
||||||
|
line = line.rstrip()
|
||||||
|
|
||||||
|
if len(line.split('\t')) == 3:
|
||||||
|
a, b, c = line.split('\t')
|
||||||
|
fsa.add_transition(a, b, c)
|
||||||
|
fsa.alphabet.add(c)
|
||||||
|
else:
|
||||||
|
fsa.add_final_state(line)
|
||||||
|
|
||||||
|
|
||||||
|
for line in sys.stdin:
|
||||||
|
line = line.rstrip()
|
||||||
|
|
||||||
|
if fsa.accepts(line):
|
||||||
|
print('YES')
|
||||||
|
else:
|
||||||
|
print('NO')
|
6
TaskC01/test.exp
Normal file
6
TaskC01/test.exp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
YES
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
YES
|
6
TaskC01/test.in
Normal file
6
TaskC01/test.in
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
abc
|
||||||
|
abbc
|
||||||
|
bca
|
||||||
|
b
|
||||||
|
abaa
|
||||||
|
aaacbb
|
14
TaskC02/description.txt
Normal file
14
TaskC02/description.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Use a non deterministic finite-state automaton (FSA) engine from the TaskC00.
|
||||||
|
Create your own non deterministic FSA description to check whether the string
|
||||||
|
ends with "ab"
|
||||||
|
Don't use external files like in TaskF00 (description should be included in run file).
|
||||||
|
|
||||||
|
The alphabet is "a", "b", "C"
|
||||||
|
|
||||||
|
Read strings from the standard input.
|
||||||
|
If a string is accepted by the
|
||||||
|
automaton, write YES, otherwise- write NO.
|
||||||
|
|
||||||
|
POINTS: 3
|
||||||
|
DEADLINE: 2023-11-12 23:59:59
|
||||||
|
REMAINDER: 1/3
|
7
TaskC02/nfsa.arg
Normal file
7
TaskC02/nfsa.arg
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
0 1 a
|
||||||
|
0 0 b
|
||||||
|
1 1 a
|
||||||
|
1 2 b
|
||||||
|
2 1 a
|
||||||
|
2 0 b
|
||||||
|
2
|
48
TaskC02/run.py
Normal file
48
TaskC02/run.py
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class FSA:
|
||||||
|
|
||||||
|
def __init__(self,):
|
||||||
|
self.initial_state = '0'
|
||||||
|
self.final_states = set()
|
||||||
|
|
||||||
|
self.transitions = dict()
|
||||||
|
self.alphabet = set()
|
||||||
|
|
||||||
|
def add_transition(self, state_from, state_to, symbol):
|
||||||
|
|
||||||
|
if state_from in self.transitions.keys():
|
||||||
|
if symbol not in self.transitions[state_from].keys():
|
||||||
|
self.transitions[state_from][symbol] = {state_to}
|
||||||
|
else:
|
||||||
|
self.transitions[state_from][symbol] |= {state_to}
|
||||||
|
else:
|
||||||
|
self.transitions[state_from] = dict()
|
||||||
|
self.transitions[state_from][symbol] = {state_to}
|
||||||
|
|
||||||
|
def add_final_state(self, state):
|
||||||
|
self.final_states.add(state)
|
||||||
|
|
||||||
|
|
||||||
|
fsa = FSA()
|
||||||
|
|
||||||
|
table = open(sys.argv[1])
|
||||||
|
for line in table:
|
||||||
|
line = line.rstrip()
|
||||||
|
|
||||||
|
if len(line.split('\t')) == 3:
|
||||||
|
a, b, c = line.split('\t')
|
||||||
|
fsa.add_transition(a, b, c)
|
||||||
|
fsa.alphabet.add(c)
|
||||||
|
else:
|
||||||
|
fsa.add_final_state(line)
|
||||||
|
|
||||||
|
|
||||||
|
for line in sys.stdin:
|
||||||
|
line = line.rstrip()
|
||||||
|
|
||||||
|
if fsa.accepts(line):
|
||||||
|
print('YES')
|
||||||
|
else:
|
||||||
|
print('NO')
|
6
TaskC02/test.exp
Normal file
6
TaskC02/test.exp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
YES
|
||||||
|
NO
|
6
TaskC02/test.in
Normal file
6
TaskC02/test.in
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
ab
|
||||||
|
a
|
||||||
|
abbab
|
||||||
|
bbbbb
|
||||||
|
ababaab
|
||||||
|
b
|
14
TaskC03/description.txt
Normal file
14
TaskC03/description.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Use a non deterministic finite-state automaton (FSA) engine from the TaskC00.
|
||||||
|
Create your own non deterministic FSA description to check whether the string
|
||||||
|
contains "abc"
|
||||||
|
Don't use external files like in TaskF00 (description should be included in run file).
|
||||||
|
|
||||||
|
The alphabet is "a", "b", "c"
|
||||||
|
|
||||||
|
Read strings from the standard input.
|
||||||
|
If a string is accepted by the
|
||||||
|
automaton, write YES, otherwise- write NO.
|
||||||
|
|
||||||
|
POINTS: 3
|
||||||
|
DEADLINE: 2023-11-12 23:59:59
|
||||||
|
REMAINDER: 2/3
|
13
TaskC03/nfsa.arg
Normal file
13
TaskC03/nfsa.arg
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
0 0 b
|
||||||
|
0 0 c
|
||||||
|
0 1 a
|
||||||
|
1 1 a
|
||||||
|
1 0 c
|
||||||
|
1 2 b
|
||||||
|
2 1 a
|
||||||
|
2 0 b
|
||||||
|
2 3 c
|
||||||
|
3 3 a
|
||||||
|
3 3 b
|
||||||
|
3 3 c
|
||||||
|
3
|
48
TaskC03/run.py
Normal file
48
TaskC03/run.py
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class FSA:
|
||||||
|
|
||||||
|
def __init__(self,):
|
||||||
|
self.initial_state = '0'
|
||||||
|
self.final_states = set()
|
||||||
|
|
||||||
|
self.transitions = dict()
|
||||||
|
self.alphabet = set()
|
||||||
|
|
||||||
|
def add_transition(self, state_from, state_to, symbol):
|
||||||
|
|
||||||
|
if state_from in self.transitions.keys():
|
||||||
|
if symbol not in self.transitions[state_from].keys():
|
||||||
|
self.transitions[state_from][symbol] = {state_to}
|
||||||
|
else:
|
||||||
|
self.transitions[state_from][symbol] |= {state_to}
|
||||||
|
else:
|
||||||
|
self.transitions[state_from] = dict()
|
||||||
|
self.transitions[state_from][symbol] = {state_to}
|
||||||
|
|
||||||
|
def add_final_state(self, state):
|
||||||
|
self.final_states.add(state)
|
||||||
|
|
||||||
|
|
||||||
|
fsa = FSA()
|
||||||
|
|
||||||
|
table = open(sys.argv[1])
|
||||||
|
for line in table:
|
||||||
|
line = line.rstrip()
|
||||||
|
|
||||||
|
if len(line.split('\t')) == 3:
|
||||||
|
a, b, c = line.split('\t')
|
||||||
|
fsa.add_transition(a, b, c)
|
||||||
|
fsa.alphabet.add(c)
|
||||||
|
else:
|
||||||
|
fsa.add_final_state(line)
|
||||||
|
|
||||||
|
|
||||||
|
for line in sys.stdin:
|
||||||
|
line = line.rstrip()
|
||||||
|
|
||||||
|
if fsa.accepts(line):
|
||||||
|
print('YES')
|
||||||
|
else:
|
||||||
|
print('NO')
|
7
TaskC03/test.exp
Normal file
7
TaskC03/test.exp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
YES
|
||||||
|
YES
|
||||||
|
YES
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
||||||
|
NO
|
7
TaskC03/test.in
Normal file
7
TaskC03/test.in
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
abc
|
||||||
|
acabc
|
||||||
|
acabccb
|
||||||
|
abbab
|
||||||
|
bbbbb
|
||||||
|
ababaab
|
||||||
|
bc
|
0
TaskC03/test.out
Normal file
0
TaskC03/test.out
Normal file
24
TaskC04/description.txt
Normal file
24
TaskC04/description.txt
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
Deterministic automaton III
|
||||||
|
===========================
|
||||||
|
|
||||||
|
Read a description of a finite-state automaton in the AT&T format
|
||||||
|
(without weights) from the file in the first argument. Then, read strings from the
|
||||||
|
standard input. If a string is
|
||||||
|
accepted by the automaton, write TRUE, a space and the string on the
|
||||||
|
standard output, otherwise — write FALSE, a space and the string.
|
||||||
|
|
||||||
|
If there is a non-determinism in the automaton, the first transition should be chosen.
|
||||||
|
|
||||||
|
The automaton can contain epsilon transitions ("<eps>" instead of a
|
||||||
|
character). They should be interpreted as follows: an epsilon
|
||||||
|
transition can be used (without "eating" a character from the input),
|
||||||
|
if there is no other transition applicable. You can assume that there
|
||||||
|
is at most one epsilon transition from a given state and that there
|
||||||
|
are no cycles with epsilon transition.
|
||||||
|
|
||||||
|
Your program does not have to check whether the description is correct
|
||||||
|
and whether the automaton is deterministic.
|
||||||
|
|
||||||
|
POINTS: 3
|
||||||
|
DEADLINE: 2023-11-12 23:59:59
|
||||||
|
REMAINDER: 0/3
|
8
TaskC04/eps.arg
Normal file
8
TaskC04/eps.arg
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
0 1 a
|
||||||
|
1 0 a
|
||||||
|
1 2 b
|
||||||
|
2 4 c
|
||||||
|
1 3 <eps>
|
||||||
|
3 4 d
|
||||||
|
3
|
||||||
|
4
|
10
TaskC04/eps.exp
Normal file
10
TaskC04/eps.exp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
TRUE a
|
||||||
|
FALSE aa
|
||||||
|
TRUE aaa
|
||||||
|
TRUE abc
|
||||||
|
TRUE aaabc
|
||||||
|
FALSE aaabcd
|
||||||
|
FALSE aabc
|
||||||
|
FALSE abd
|
||||||
|
TRUE ad
|
||||||
|
FALSE aad
|
10
TaskC04/eps.in
Normal file
10
TaskC04/eps.in
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
a
|
||||||
|
aa
|
||||||
|
aaa
|
||||||
|
abc
|
||||||
|
aaabc
|
||||||
|
aaabcd
|
||||||
|
aabc
|
||||||
|
abd
|
||||||
|
ad
|
||||||
|
aad
|
4041
TaskC04/long.arg
Normal file
4041
TaskC04/long.arg
Normal file
File diff suppressed because it is too large
Load Diff
7
TaskC04/long.exp
Normal file
7
TaskC04/long.exp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
FALSE aaa
|
||||||
|
FALSE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
TRUE aaaa
|
||||||
|
TRUE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
FALSE xyz
|
||||||
|
FALSE aba
|
||||||
|
FALSE a
|
7
TaskC04/long.in
Normal file
7
TaskC04/long.in
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
aaa
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
aaaa
|
||||||
|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||||
|
xyz
|
||||||
|
aba
|
||||||
|
a
|
5
TaskC04/simple1.arg
Normal file
5
TaskC04/simple1.arg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# prosty automat akceptujący tylko napis "abc"
|
||||||
|
0 1 a
|
||||||
|
1 2 b
|
||||||
|
2 3 c
|
||||||
|
3
|
8
TaskC04/simple1.exp
Normal file
8
TaskC04/simple1.exp
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
FALSE a
|
||||||
|
FALSE ab
|
||||||
|
TRUE abc
|
||||||
|
FALSE abcd
|
||||||
|
FALSE aaaaab
|
||||||
|
TRUE abc
|
||||||
|
FALSE xyz
|
||||||
|
FALSE 0
|
8
TaskC04/simple1.in
Normal file
8
TaskC04/simple1.in
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
a
|
||||||
|
ab
|
||||||
|
abc
|
||||||
|
abcd
|
||||||
|
aaaaab
|
||||||
|
abc
|
||||||
|
xyz
|
||||||
|
0
|
9
TaskC04/simple2.arg
Normal file
9
TaskC04/simple2.arg
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# automat akceptujący napis "ab*c" (b powielony dowolną liczbę razy) i "kot"
|
||||||
|
0 1 a
|
||||||
|
1 1 b
|
||||||
|
1 2 c
|
||||||
|
0 3 k
|
||||||
|
3 4 o
|
||||||
|
4 5 t
|
||||||
|
2
|
||||||
|
5
|
9
TaskC04/simple2.exp
Normal file
9
TaskC04/simple2.exp
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
TRUE kot
|
||||||
|
TRUE ac
|
||||||
|
TRUE abc
|
||||||
|
TRUE abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbc
|
||||||
|
FALSE abcd
|
||||||
|
FALSE abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccc
|
||||||
|
FALSE kotek
|
||||||
|
FALSE kotabc
|
||||||
|
TRUE kot
|
9
TaskC04/simple2.in
Normal file
9
TaskC04/simple2.in
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
kot
|
||||||
|
ac
|
||||||
|
abc
|
||||||
|
abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbc
|
||||||
|
abcd
|
||||||
|
abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccc
|
||||||
|
kotek
|
||||||
|
kotabc
|
||||||
|
kot
|
52
TaskC05/description.txt
Normal file
52
TaskC05/description.txt
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
Dictionary
|
||||||
|
==========
|
||||||
|
|
||||||
|
Your program should read a finite-state automaton from file in the first argument.
|
||||||
|
The automaton is deterministic, you can assume it does not contain
|
||||||
|
cycles.
|
||||||
|
|
||||||
|
Each automaton path is labeled with a symbol sequence of the following form:
|
||||||
|
|
||||||
|
<input word>;<description>
|
||||||
|
|
||||||
|
e.g.:
|
||||||
|
|
||||||
|
biały;ADJ
|
||||||
|
dom;N
|
||||||
|
piła;N
|
||||||
|
piła;V
|
||||||
|
stali;N
|
||||||
|
stali;V
|
||||||
|
stali;ADJ
|
||||||
|
|
||||||
|
Next you should read words from the standard input.
|
||||||
|
For each word, you should all automaton
|
||||||
|
paths that begin a given word, the following symbol is ';'
|
||||||
|
(semicolon), e.g. for the word 'dom' we are looking for paths
|
||||||
|
beginning with 'dom;'. If there is no such path, the following message
|
||||||
|
should be printed:
|
||||||
|
|
||||||
|
<input word>;OOV
|
||||||
|
|
||||||
|
For instance, for the automaton given above and the input:
|
||||||
|
|
||||||
|
budynek
|
||||||
|
dom
|
||||||
|
piła
|
||||||
|
|
||||||
|
we should get:
|
||||||
|
|
||||||
|
budynek;OOV
|
||||||
|
dom;N
|
||||||
|
piła;N
|
||||||
|
piła;V
|
||||||
|
|
||||||
|
If there is more than one path for a given word, they should be given in alphabetical order.
|
||||||
|
|
||||||
|
The program does not have to check whether the automaton is correct
|
||||||
|
and whether it is deterministic and does not contain cycles.
|
||||||
|
|
||||||
|
|
||||||
|
POINTS: 3
|
||||||
|
DEADLINE: 2023-11-12 23:59:59
|
||||||
|
REMAINDER: 1/3
|
31
TaskC05/elem.arg
Normal file
31
TaskC05/elem.arg
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
0 1 b
|
||||||
|
0 2 d
|
||||||
|
0 3 p
|
||||||
|
0 4 s
|
||||||
|
1 5 i
|
||||||
|
2 6 o
|
||||||
|
3 7 i
|
||||||
|
4 8 t
|
||||||
|
5 9 a
|
||||||
|
6 10 m
|
||||||
|
7 11 ł
|
||||||
|
8 12 a
|
||||||
|
9 13 ł
|
||||||
|
10 14 ;
|
||||||
|
11 15 a
|
||||||
|
12 16 l
|
||||||
|
13 17 y
|
||||||
|
14 24 N
|
||||||
|
15 18 ;
|
||||||
|
16 19 i
|
||||||
|
17 20 ;
|
||||||
|
18 24 N
|
||||||
|
18 24 V
|
||||||
|
19 21 ;
|
||||||
|
20 22 A
|
||||||
|
21 22 A
|
||||||
|
21 24 N
|
||||||
|
21 24 V
|
||||||
|
22 23 D
|
||||||
|
23 24 J
|
||||||
|
24
|
1
TaskC05/elem.exp
Normal file
1
TaskC05/elem.exp
Normal file
@ -0,0 +1 @@
|
|||||||
|
dom;N
|
1
TaskC05/elem.in
Normal file
1
TaskC05/elem.in
Normal file
@ -0,0 +1 @@
|
|||||||
|
dom
|
15125
TaskC05/medium.arg
Normal file
15125
TaskC05/medium.arg
Normal file
File diff suppressed because it is too large
Load Diff
7
TaskC05/medium.exp
Normal file
7
TaskC05/medium.exp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
arbuz;N
|
||||||
|
arbuza;N
|
||||||
|
arbuzowi;ADJ
|
||||||
|
arbuzowi;N
|
||||||
|
azylant;N
|
||||||
|
azylanci;N
|
||||||
|
azylantowie;OOV
|
6
TaskC05/medium.in
Normal file
6
TaskC05/medium.in
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
arbuz
|
||||||
|
arbuza
|
||||||
|
arbuzowi
|
||||||
|
azylant
|
||||||
|
azylanci
|
||||||
|
azylantowie
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user