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

View File

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

View File

@ -1,22 +1,28 @@
Cykle Cycles
===== ======
Program powinien wczytać automat skończeniestanowy (bez wag) ze Your program should read a finite-state automaton (without weights)
standardowego wejścia. Automat może być niedeterministyczny i zawierać from standard input. The automaton can be nondeterministic and can
epsilon-przejścia. 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 TAK
w przeciwnym razie otherwise:
NIE NIE
NOTE: Task only for students whose student index number ("numer ("TAK" and "NIE" are "YES" and "NO" in Polish, these are used for
indeksu") is divisable by 3 with a remainder of 2 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 POINTS: 14
DEADLINE: 2019-12-16 23:59 DEADLINE: 2019-12-16 23:59

View File

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