This commit is contained in:
Eryk Miszczuk 2019-12-08 10:34:15 +01:00
commit 003c5ac2b7
5 changed files with 61 additions and 51 deletions

View File

@ -20,7 +20,8 @@ This is a special task, Jenkins/make won't be used. The task will be
scored manually, according to the following criteria:
* submitting a solution beating a simple baseline along with the
source codes: 4 points
source codes: 4 points (the baseline is available here:
http://poleval2020.nlp.ipipan.waw.pl/q/afaf0b03df49b6d14e3a9dd3aeae3a5ea58141a2)
* quality of solution (including the result obtained): 0-8
* quality of usage report (0-6 points)

View File

@ -1,16 +1,15 @@
Słownik
=======
Dictionary
==========
Program powinien wczytać automat skończeniestanowy (bez wag) ze
standardowego wejścia. Zakładamy, że automat jest deterministyczny i
nie zawiera cykli.
Your program should read a finite-state automaton from standard input.
The automaton is deterministic, you can assume it does not contain
cycles.
Każda ścieżka automatu etykietowana jest ciągiem symboli o
następującej strukturze:
Each automaton path is labeled with a symbol sequence of the following form:
<słowo wejściowe>;<opis>
<input word>;<description>
np.
e.g.:
biały;ADJ
dom;N
@ -20,37 +19,38 @@ stali;N
stali;V
stali;ADJ
Następnie należy wczytać słowa z kolejnych wierszy pliku podanego jako
argument. Dla każdego słowa należy wypisać wszystkie ścieżki automatu,
które rozpoczynają się tym słowem, a następnym symbolem jest ';'
(średnik), czyli np. dla słowa wejściowego 'dom' szukamy ścieżek o
prefiksie 'dom;'. Jeśli nie ma żadnej takiej ścieżki, to należy
wyprowadzić napis:
Next you should read words from the file whose name is given as the
first argument (`*.arg` file). 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:
<słowo wejściowe>;OOV
<input word>;OOV
Przykładowo, dla automatu ze ścieżkami, jak wyżej, i wejścia:
For instance, for the automaton given above and the input:
budynek
dom
piła
powinniśmy otrzymać:
we should get:
budynek;OOV
dom;N
piła;N
piła;V
W sytuacji, gdy dla jednego prefiksu wejściowego otrzymujemy na wyściu
wiele ścieżek, powinny być one posortowane alfabetycznie.
If there is more than one path for a given word, they should be given in alphabetical order.
Program nie musi sprawdzać, czy tekst wczytany ze standardowego
wejścia jest poprawnym opisem automatu i czy automat jest
deterministyczny i nie zawiera cykli.
The program does not have to check whether the automaton is correct
and whether it is deterministic and does not contain cycles.
NOTE: Task only for students whose student index number ("numer
indeksu") is divisable by 3 with a remainder of 1
NOTE 1. In section B for points for your tasks, the maximum (rather
than sum) is taken.
NOTE 2. Task only for students whose student index number ("numer
indeksu") is divisible by 3 with a remainder of 0
POINTS: 14
DEADLINE: 2019-12-16 23:59

View File

@ -1,23 +1,25 @@
Ścieżki
=======
Paths
======
Program powinien wczytać automat skończeniestanowy (bez wag) ze
standardowego wejścia. Zakładamy, że automat jest deterministyczny i
nie zawiera cykli. Alfabet automatu stanowią litery języka polskiego.
Your program should read a finite-state automaton from standard input.
The automaton is deterministic, you can assume it does not contain
cycles. The automaton alphabet is the set of Polish lower-case letters
(English letters plus: ą, ć, ę, ł, ń, ó, ś, ź and ż).
Program powinien wypisać na standardowe wyjście wszystkie ścieżki
automatu w porządku alfabetycznym. Wypisać ścieżkę oznacza wyprowadzić
linię tekstu zawierającą jako kolejne znaki kolejne symbole wejściowe
automatu i zakończoną znakiem końca linii.
Your program should print, on standard output, all the paths of the
automaton in alphabetical order. "Print a path" means print a text
line containing all subsequent characters.
Program nie musi sprawdzać, czy tekst wczytany ze standardowego
wejścia jest poprawnym opisem automatu i czy automat jest
deterministyczny i nie zawiera cykli.
The program does not have to check whether the automaton is correct
and whether it is deterministic and does not contain cycles.
Ewentualne wagi należy pomijać.
Weights (if any) should be disregarded.
NOTE: Task only for students whose student index number ("numer
indeksu") is divisable by 3 with a remainder of 1
NOTE 1. In section B for points for your tasks, the maximum (rather
than sum) is taken.
NOTE 2. Task only for students whose student index number ("numer
indeksu") is divisible by 3 with a remainder of 1
POINTS: 14
DEADLINE: 2019-12-16 23:59

View File

@ -1,22 +1,28 @@
Cykle
=====
Cycles
======
Program powinien wczytać automat skończeniestanowy (bez wag) ze
standardowego wejścia. Automat może być niedeterministyczny i zawierać
epsilon-przejścia.
Your program should read a finite-state automaton (without weights)
from standard input. The automaton can be nondeterministic and can
contain epsilon-transitions.
Program powinien sprawdzić, czy automat zawiera cykle.
Your program should check whether the automaton contains a cycle (of any length).
Jeśli tak, na wyjściu powinna zostać wypisana linia
If so, the following line should be written on the standard output:
TAK
w przeciwnym razie
otherwise:
NIE
NOTE: Task only for students whose student index number ("numer
indeksu") is divisable by 3 with a remainder of 2
("TAK" and "NIE" are "YES" and "NO" in Polish, these are used for
compatibility with further tasks.)
NOTE 1. In section B for points for your tasks, the maximum (rather
than sum) is taken.
NOTE 2. Task only for students whose student index number ("numer
indeksu") is divisible by 3 with a remainder of 2.
POINTS: 14
DEADLINE: 2019-12-16 23:59

View File

@ -241,6 +241,7 @@ sub is_estudent {
my %estudents = map { $_ => 1 } split/\n/,<<'END_OF_NUMBERS';
16136
21804
30291
30686
32746