Merge branch 'master' of https://git.wmi.amu.edu.pl/filipg/djfz-2019
This commit is contained in:
commit
3bad913401
31
TaskA49/description.txt
Normal file
31
TaskA49/description.txt
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
Diachronic morphosyntactic disambiguation challenge
|
||||||
|
===================================================
|
||||||
|
|
||||||
|
The task is to take part in "Diachronic morphosyntactic
|
||||||
|
disambiguation" challenge:
|
||||||
|
http://poleval2020.nlp.ipipan.waw.pl/challenge/poleval-diachronic-morpho
|
||||||
|
|
||||||
|
Also, apart from submitting a solution you're expected to report any
|
||||||
|
problems with the web site (including incorrect English, unclear
|
||||||
|
instructions, software errors).
|
||||||
|
|
||||||
|
For an account there, please contact Filip Graliński, but do it only
|
||||||
|
when you're sure you'll take part in it — the dataset and instructions
|
||||||
|
are freely available without a need to sign up there:
|
||||||
|
git://poleval2020.nlp.ipipan.waw.pl/poleval-diachronic-morpho
|
||||||
|
http://poleval2020.nlp.ipipan.waw.pl/challenge-readme/poleval-diachronic-morpho
|
||||||
|
http://poleval2020.nlp.ipipan.waw.pl/challenge-how-to/poleval-diachronic-morpho
|
||||||
|
|
||||||
|
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
|
||||||
|
* quality of solution (including the result obtained): 0-8
|
||||||
|
* quality of usage report (0-6 points)
|
||||||
|
|
||||||
|
In Section A (contrary to B/C) points are *added* (it is not the case
|
||||||
|
the maximum is calculated).
|
||||||
|
|
||||||
|
POINTS: 0
|
||||||
|
DEADLINE: 2019-12-20 23:59
|
@ -18,5 +18,5 @@ NOTE: Task only for students whose student index number ("numer
|
|||||||
indeksu") is divisable by 3.
|
indeksu") is divisable by 3.
|
||||||
|
|
||||||
POINTS: 8
|
POINTS: 8
|
||||||
DEADLINE: 2019-11-25 23:59
|
DEADLINE: 2019-12-09 18:45
|
||||||
REMAINDER: 0/3
|
REMAINDER: 0/3
|
||||||
|
@ -16,5 +16,5 @@ NOTE: Task only for students whose student index number ("numer
|
|||||||
indeksu") is divisable by 3 with a remainder of 1
|
indeksu") is divisable by 3 with a remainder of 1
|
||||||
|
|
||||||
POINTS: 8
|
POINTS: 8
|
||||||
DEADLINE: 2019-11-25 23:59
|
DEADLINE: 2019-12-09 18:45
|
||||||
REMAINDER: 1/3
|
REMAINDER: 1/3
|
||||||
|
@ -24,5 +24,5 @@ NOTE: Task only for students whose student index number ("numer
|
|||||||
indeksu") is divisable by 3 with a remainder of 2
|
indeksu") is divisable by 3 with a remainder of 2
|
||||||
|
|
||||||
POINTS: 8
|
POINTS: 8
|
||||||
DEADLINE: 2019-11-25 23:59
|
DEADLINE: 2019-12-09 18:45
|
||||||
REMAINDER: 2/3
|
REMAINDER: 2/3
|
||||||
|
57
TaskB03/description.txt
Normal file
57
TaskB03/description.txt
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
Słownik
|
||||||
|
=======
|
||||||
|
|
||||||
|
Program powinien wczytać automat skończeniestanowy (bez wag) ze
|
||||||
|
standardowego wejścia. Zakładamy, że automat jest deterministyczny i
|
||||||
|
nie zawiera cykli.
|
||||||
|
|
||||||
|
Każda ścieżka automatu etykietowana jest ciągiem symboli o
|
||||||
|
następującej strukturze:
|
||||||
|
|
||||||
|
<słowo wejściowe>;<opis>
|
||||||
|
|
||||||
|
np.
|
||||||
|
|
||||||
|
biały;ADJ
|
||||||
|
dom;N
|
||||||
|
piła;N
|
||||||
|
piła;V
|
||||||
|
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:
|
||||||
|
|
||||||
|
<słowo wejściowe>;OOV
|
||||||
|
|
||||||
|
Przykładowo, dla automatu ze ścieżkami, jak wyżej, i wejścia:
|
||||||
|
|
||||||
|
budynek
|
||||||
|
dom
|
||||||
|
piła
|
||||||
|
|
||||||
|
powinniśmy otrzymać:
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Program nie musi sprawdzać, czy tekst wczytany ze standardowego
|
||||||
|
wejścia jest poprawnym opisem automatu i czy automat jest
|
||||||
|
deterministyczny i nie zawiera cykli.
|
||||||
|
|
||||||
|
NOTE: Task only for students whose student index number ("numer
|
||||||
|
indeksu") is divisable by 3 with a remainder of 1
|
||||||
|
|
||||||
|
POINTS: 14
|
||||||
|
DEADLINE: 2019-12-16 23:59
|
||||||
|
REMAINDER: 0/3
|
1
TaskB03/elem.arg
Normal file
1
TaskB03/elem.arg
Normal file
@ -0,0 +1 @@
|
|||||||
|
dom
|
1
TaskB03/elem.exp
Normal file
1
TaskB03/elem.exp
Normal file
@ -0,0 +1 @@
|
|||||||
|
dom;N
|
31
TaskB03/elem.in
Normal file
31
TaskB03/elem.in
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
|
6
TaskB03/medium.arg
Normal file
6
TaskB03/medium.arg
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
arbuz
|
||||||
|
arbuza
|
||||||
|
arbuzowi
|
||||||
|
azylant
|
||||||
|
azylanci
|
||||||
|
azylantowie
|
7
TaskB03/medium.exp
Normal file
7
TaskB03/medium.exp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
arbuz;N
|
||||||
|
arbuza;N
|
||||||
|
arbuzowi;ADJ
|
||||||
|
arbuzowi;N
|
||||||
|
azylant;N
|
||||||
|
azylanci;N
|
||||||
|
azylantowie;OOV
|
15125
TaskB03/medium.in
Normal file
15125
TaskB03/medium.in
Normal file
File diff suppressed because it is too large
Load Diff
1
TaskB03/multi.arg
Normal file
1
TaskB03/multi.arg
Normal file
@ -0,0 +1 @@
|
|||||||
|
piła
|
2
TaskB03/multi.exp
Normal file
2
TaskB03/multi.exp
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
piła;N
|
||||||
|
piła;V
|
31
TaskB03/multi.in
Normal file
31
TaskB03/multi.in
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
TaskB03/oov.arg
Normal file
1
TaskB03/oov.arg
Normal file
@ -0,0 +1 @@
|
|||||||
|
budynek
|
1
TaskB03/oov.exp
Normal file
1
TaskB03/oov.exp
Normal file
@ -0,0 +1 @@
|
|||||||
|
budynek;OOV
|
31
TaskB03/oov.in
Normal file
31
TaskB03/oov.in
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
|
24
TaskB04/description.txt
Normal file
24
TaskB04/description.txt
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
Ścieżki
|
||||||
|
=======
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Program nie musi sprawdzać, czy tekst wczytany ze standardowego
|
||||||
|
wejścia jest poprawnym opisem automatu i czy automat jest
|
||||||
|
deterministyczny i nie zawiera cykli.
|
||||||
|
|
||||||
|
Ewentualne wagi należy pomijać.
|
||||||
|
|
||||||
|
NOTE: Task only for students whose student index number ("numer
|
||||||
|
indeksu") is divisable by 3 with a remainder of 1
|
||||||
|
|
||||||
|
POINTS: 14
|
||||||
|
DEADLINE: 2019-12-16 23:59
|
||||||
|
REMAINDER: 1/3
|
50657
TaskB04/medium.exp
Normal file
50657
TaskB04/medium.exp
Normal file
File diff suppressed because it is too large
Load Diff
14774
TaskB04/medium.in
Normal file
14774
TaskB04/medium.in
Normal file
File diff suppressed because it is too large
Load Diff
1
TaskB04/medium2.exp
Normal file
1
TaskB04/medium2.exp
Normal file
@ -0,0 +1 @@
|
|||||||
|
a
|
13989
TaskB04/medium2.in
Normal file
13989
TaskB04/medium2.in
Normal file
File diff suppressed because it is too large
Load Diff
4
TaskB04/small.exp
Normal file
4
TaskB04/small.exp
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
biały
|
||||||
|
dom
|
||||||
|
piła
|
||||||
|
stali
|
18
TaskB04/small.in
Normal file
18
TaskB04/small.in
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
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 14 m
|
||||||
|
7 10 ł
|
||||||
|
8 11 a
|
||||||
|
9 12 ł
|
||||||
|
10 14 a
|
||||||
|
11 13 l
|
||||||
|
12 14 y
|
||||||
|
13 14 i
|
||||||
|
14
|
3
TaskB04/small2.exp
Normal file
3
TaskB04/small2.exp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
biały
|
||||||
|
piła
|
||||||
|
stali
|
18
TaskB04/small2.in
Normal file
18
TaskB04/small2.in
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
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 15 m
|
||||||
|
7 10 ł
|
||||||
|
8 11 a
|
||||||
|
9 12 ł
|
||||||
|
10 14 a
|
||||||
|
11 13 l
|
||||||
|
12 14 y
|
||||||
|
13 14 i
|
||||||
|
14
|
23
TaskB05/description.txt
Normal file
23
TaskB05/description.txt
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
Cykle
|
||||||
|
=====
|
||||||
|
|
||||||
|
Program powinien wczytać automat skończeniestanowy (bez wag) ze
|
||||||
|
standardowego wejścia. Automat może być niedeterministyczny i zawierać
|
||||||
|
epsilon-przejścia.
|
||||||
|
|
||||||
|
Program powinien sprawdzić, czy automat zawiera cykle.
|
||||||
|
|
||||||
|
Jeśli tak, na wyjściu powinna zostać wypisana linia
|
||||||
|
|
||||||
|
TAK
|
||||||
|
|
||||||
|
w przeciwnym razie
|
||||||
|
|
||||||
|
NIE
|
||||||
|
|
||||||
|
NOTE: Task only for students whose student index number ("numer
|
||||||
|
indeksu") is divisable by 3 with a remainder of 2
|
||||||
|
|
||||||
|
POINTS: 14
|
||||||
|
DEADLINE: 2019-12-16 23:59
|
||||||
|
REMAINDER: 2/3
|
1
TaskB05/medium1.exp
Normal file
1
TaskB05/medium1.exp
Normal file
@ -0,0 +1 @@
|
|||||||
|
NIE
|
14774
TaskB05/medium1.in
Normal file
14774
TaskB05/medium1.in
Normal file
File diff suppressed because it is too large
Load Diff
1
TaskB05/medium2.exp
Normal file
1
TaskB05/medium2.exp
Normal file
@ -0,0 +1 @@
|
|||||||
|
TAK
|
13989
TaskB05/medium2.in
Normal file
13989
TaskB05/medium2.in
Normal file
File diff suppressed because it is too large
Load Diff
1
TaskB05/small1.exp
Normal file
1
TaskB05/small1.exp
Normal file
@ -0,0 +1 @@
|
|||||||
|
NIE
|
18
TaskB05/small1.in
Normal file
18
TaskB05/small1.in
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
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 14 m
|
||||||
|
7 10 ł
|
||||||
|
8 11 a
|
||||||
|
9 12 ł
|
||||||
|
10 14 a
|
||||||
|
11 13 l
|
||||||
|
12 14 y
|
||||||
|
13 14 i
|
||||||
|
14
|
1
TaskB05/small2.exp
Normal file
1
TaskB05/small2.exp
Normal file
@ -0,0 +1 @@
|
|||||||
|
TAK
|
19
TaskB05/small2.in
Normal file
19
TaskB05/small2.in
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
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 15 m
|
||||||
|
7 10 ł
|
||||||
|
8 11 a
|
||||||
|
9 12 ł
|
||||||
|
10 14 a
|
||||||
|
11 11 l
|
||||||
|
11 13 l
|
||||||
|
12 14 y
|
||||||
|
13 14 i
|
||||||
|
14
|
@ -15,4 +15,4 @@ substring composed of an upper-case letter and 2 digits. Write "true"/"false"
|
|||||||
on the standard output accordingly.
|
on the standard output accordingly.
|
||||||
|
|
||||||
POINTS: 2
|
POINTS: 2
|
||||||
DEADLINE: 2019-11-21 17:00
|
DEADLINE: 2019-12-05 17:00
|
||||||
|
@ -15,4 +15,4 @@ phone number (format "NNN-NNN-NNN" or "NNN NNN NNN"), not beginning
|
|||||||
with "555". Write "true"/"false" on the standard output accordingly.
|
with "555". Write "true"/"false" on the standard output accordingly.
|
||||||
|
|
||||||
POINTS: 3
|
POINTS: 3
|
||||||
DEADLINE: 2019-11-21 17:00
|
DEADLINE: 2019-12-05 17:00
|
||||||
|
@ -15,4 +15,4 @@ word with exactly one vowel (consider only Latin alphabet). Write
|
|||||||
"true"/"false" on the standard output accordingly.
|
"true"/"false" on the standard output accordingly.
|
||||||
|
|
||||||
POINTS: 2
|
POINTS: 2
|
||||||
DEADLINE: 2019-11-21 17:00
|
DEADLINE: 2019-12-05 17:00
|
||||||
|
@ -16,4 +16,4 @@ standard output. If the input string is not an hour, write "<NONE>" on
|
|||||||
the standard output.
|
the standard output.
|
||||||
|
|
||||||
POINTS: 3
|
POINTS: 3
|
||||||
DEADLINE: 2019-11-21 17:00
|
DEADLINE: 2019-12-05 17:00
|
||||||
|
@ -2,4 +2,4 @@ Read a specification of an automaton in the AT&T format and write
|
|||||||
the number of transitions.
|
the number of transitions.
|
||||||
|
|
||||||
POINTS: 1
|
POINTS: 1
|
||||||
DEADLINE: 2019-11-14 23:59
|
DEADLINE: 2019-11-26 23:59
|
||||||
|
4
blend.sh
4
blend.sh
@ -19,14 +19,14 @@ cp "${PREFIX}/count-points.pl" arena/
|
|||||||
cp "${PREFIX}/overrides.txt" arena/
|
cp "${PREFIX}/overrides.txt" arena/
|
||||||
cp "${PREFIX}/Makefile" arena/
|
cp "${PREFIX}/Makefile" arena/
|
||||||
|
|
||||||
for TX in X01 X02 X03 X04 B00 B01 B02 E01 E02 E03 E04 # X05 X06 X07 X08 X09 X10 B03 B04 X10
|
for TX in X01 X02 X03 X04 B00 B01 B02 B03 B04 B05 E01 E02 E03 E04 # X05 X06 X07 X08 X09 X10 B03 B04 X10
|
||||||
do
|
do
|
||||||
mkdir -p arena/Task$TX
|
mkdir -p arena/Task$TX
|
||||||
done
|
done
|
||||||
|
|
||||||
#cp $PREFIX/TaskA49/Makefile $PREFIX/TaskA49/run arena/TaskA49/
|
#cp $PREFIX/TaskA49/Makefile $PREFIX/TaskA49/run arena/TaskA49/
|
||||||
|
|
||||||
for AX in `seq -w 0 48`
|
for AX in `seq -w 0 49`
|
||||||
do
|
do
|
||||||
mkdir -p arena/TaskA$AX
|
mkdir -p arena/TaskA$AX
|
||||||
done
|
done
|
||||||
|
@ -163,7 +163,9 @@ sub check_if_the_right_task {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0 if $task_id =~ m{^TaskE} and $student_id != 148603 and $student_id != 148335 and $student_id != 148521 and $student_id != 148567;
|
return 0 if $task_id =~ m{^TaskE} and not is_estudent($student_id);
|
||||||
|
|
||||||
|
return 0 if $task_id =~ m{^TaskA} and is_estudent($student_id);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -231,3 +233,49 @@ sub get_override_key {
|
|||||||
|
|
||||||
return $id.'+'.$task;
|
return $id.'+'.$task;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub is_estudent {
|
||||||
|
my ($id) = @_;
|
||||||
|
|
||||||
|
my $suffix = substr($id, 1);
|
||||||
|
|
||||||
|
my %estudents = map { $_ => 1 } split/\n/,<<'END_OF_NUMBERS';
|
||||||
|
16136
|
||||||
|
30291
|
||||||
|
30686
|
||||||
|
32746
|
||||||
|
32753
|
||||||
|
32754
|
||||||
|
32757
|
||||||
|
32759
|
||||||
|
32778
|
||||||
|
32813
|
||||||
|
32837
|
||||||
|
34595
|
||||||
|
34596
|
||||||
|
34598
|
||||||
|
34599
|
||||||
|
34603
|
||||||
|
34604
|
||||||
|
34608
|
||||||
|
34650
|
||||||
|
34654
|
||||||
|
39546
|
||||||
|
40549
|
||||||
|
42335
|
||||||
|
42611
|
||||||
|
42612
|
||||||
|
42613
|
||||||
|
42614
|
||||||
|
50169
|
||||||
|
50711
|
||||||
|
52484
|
||||||
|
84146
|
||||||
|
END_OF_NUMBERS
|
||||||
|
|
||||||
|
if ($estudents{$suffix}) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user