add A tasks
This commit is contained in:
parent
80f983b481
commit
a60731d812
12
README.md
12
README.md
@ -8,8 +8,8 @@ Prowadzący: mgr Jakub Pokrywka
|
|||||||
|
|
||||||
Dyżury: B1-46. Przed przyjściem proszę się umówić na spotkanie, najlepiej jest wysłać mi prywatną wiadomość na MS TEAMS.
|
Dyżury: B1-46. Przed przyjściem proszę się umówić na spotkanie, najlepiej jest wysłać mi prywatną wiadomość na MS TEAMS.
|
||||||
|
|
||||||
- W celu zaliczenia przedmiotu należy zdobyć punkty za zadania na laboratoriach oraz zaliczyć kolowkium.
|
W celu zaliczenia przedmiotu należy zdobyć punkty za zadania na laboratoriach oraz zaliczyć kolokwium.
|
||||||
Punktowane zadania będziemy wykonywać na laboratoriach oraz po nich, ich ilość determinuje ocenę.
|
Punktowane zadania będziemy wykonywać na laboratoriach oraz po nich (przed następnymi zajęciami), ich ilość determinuje ocenę.
|
||||||
Oprócz tego należy zaliczyć kolokwium z wyrażeń regularnych na ostatnich zajęciach. Sam wynik kolokwium
|
Oprócz tego należy zaliczyć kolokwium z wyrażeń regularnych na ostatnich zajęciach. Sam wynik kolokwium
|
||||||
nie będzie wpływał na ocenę, ale bez zdanego kolowkium nie da sie zaliczyć przedmiotu. Punktacja za zadania jest następująca:
|
nie będzie wpływał na ocenę, ale bez zdanego kolowkium nie da sie zaliczyć przedmiotu. Punktacja za zadania jest następująca:
|
||||||
- mniej niż 30 punktów - 2
|
- mniej niż 30 punktów - 2
|
||||||
@ -21,12 +21,16 @@ nie będzie wpływał na ocenę, ale bez zdanego kolowkium nie da sie zaliczyć
|
|||||||
|
|
||||||
#### Wysyłanie zadań
|
#### Wysyłanie zadań
|
||||||
|
|
||||||
Proszę stworzyć prywatne repozytorium na https://git.wmi.amu.edu.pl/ o nazwie djfz-2021-NRINDEKSU oraz dać
|
Proszę stworzyć prywatne repozytorium na https://git.wmi.amu.edu.pl/ o nazwie djfz-2021-sNRINDEKSU oraz dać
|
||||||
prawa do odczytu użytkownikowi kubapok (prowadzący przedmiot). W NRINDEKSU proszę wpisać swój nr indeksu, np. dfjz-2021-s123456.
|
prawa do odczytu użytkownikowi kubapok (prowadzący przedmiot). W NRINDEKSU proszę wpisać swój nr indeksu, np. dfjz-2021-s123456.
|
||||||
|
|
||||||
Następnie w swoim repozytorium proszę spullować niniejsze repozytorium: `git pull git@git.wmi.amu.edu.pl:kubapok/djfz-2021.git`
|
Następnie w swoim repozytorium proszę spullować niniejsze repozytorium: `git pull git@git.wmi.amu.edu.pl:kubapok/djfz-2021.git`
|
||||||
W ten sposób będziemy aktualizować zadania co zajęcia.
|
W ten sposób będziemy aktualizować zadania co zajęcia.
|
||||||
|
|
||||||
Zadanie TaskX00 jest rozwiązane. Proszę zrobić zadanie TASKX01 lub TASKX02 w zależność od numeru indeksu.
|
Proszę rozwiązać zadanie TASKX02 lub TASKX03 w zależności od numeru indeksu. W tym celu należy dodac plik `run.py`
|
||||||
|
w odpowiednim katalogu. Za pomocą `run_reports.py` można sprwawdzić ilość punktów.
|
||||||
|
|
||||||
|
Do repo proszę dodawać wyłącznie plik `run.py` w odpowiednim katalogu, chyba że w zadaniu jest zaznaczone inaczej.
|
||||||
|
Proszę również nie modyfikować innych plików.
|
||||||
|
|
||||||
|
Wszystkie zadania należy robić w terminie zaznaczonym w `description.txt`. Po terminie będę podawał punktację za pomocą USUSa w "sprawdziany".
|
||||||
|
6
TaskA01/description.txt
Normal file
6
TaskA01/description.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Write a program to find lines containing the word "Hamlet".
|
||||||
|
Do not use regular expressions, just the simplest capabilities
|
||||||
|
of a programming language.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2021-10-24 23:59:59
|
106
TaskA01/shakespeare.exp
Normal file
106
TaskA01/shakespeare.exp
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
CLAUDIUS, King of Denmark, Hamlet’s uncle.
|
||||||
|
The GHOST of the late king, Hamlet’s father.
|
||||||
|
GERTRUDE, the Queen, Hamlet’s mother, now wife of Claudius.
|
||||||
|
HORATIO, Friend to Hamlet.
|
||||||
|
Dar’d to the combat; in which our valiant Hamlet,
|
||||||
|
His fell to Hamlet. Now, sir, young Fortinbras,
|
||||||
|
Unto young Hamlet; for upon my life,
|
||||||
|
Enter Claudius King of Denmark, Gertrude the Queen, Hamlet, Polonius,
|
||||||
|
Though yet of Hamlet our dear brother’s death
|
||||||
|
But now, my cousin Hamlet, and my son—
|
||||||
|
Good Hamlet, cast thy nighted colour off,
|
||||||
|
’Tis sweet and commendable in your nature, Hamlet,
|
||||||
|
Let not thy mother lose her prayers, Hamlet.
|
||||||
|
This gentle and unforc’d accord of Hamlet
|
||||||
|
[_Exeunt all but Hamlet._]
|
||||||
|
For Hamlet, and the trifling of his favour,
|
||||||
|
So please you, something touching the Lord Hamlet.
|
||||||
|
Than a command to parley. For Lord Hamlet,
|
||||||
|
As to give words or talk with the Lord Hamlet.
|
||||||
|
Enter Hamlet, Horatio and Marcellus.
|
||||||
|
That I will speak to thee. I’ll call thee Hamlet,
|
||||||
|
[_Ghost beckons Hamlet._]
|
||||||
|
[_Exeunt Ghost and Hamlet._]
|
||||||
|
Enter Ghost and Hamlet.
|
||||||
|
Wouldst thou not stir in this. Now, Hamlet, hear.
|
||||||
|
O Hamlet, what a falling off was there,
|
||||||
|
Adieu, adieu, adieu. Hamlet, remember me.
|
||||||
|
[_Within._] Lord Hamlet.
|
||||||
|
And what so poor a man as Hamlet is
|
||||||
|
Lord Hamlet, with his doublet all unbrac’d,
|
||||||
|
Of Hamlet’s transformation; so I call it,
|
||||||
|
And bring these gentlemen where Hamlet is.
|
||||||
|
The very cause of Hamlet’s lunacy.
|
||||||
|
Came this from Hamlet to her?
|
||||||
|
‘Lord Hamlet is a prince, out of thy star.
|
||||||
|
Enter Hamlet, reading.
|
||||||
|
How does my good Lord Hamlet?
|
||||||
|
You go to seek the Lord Hamlet; there he is.
|
||||||
|
For we have closely sent for Hamlet hither,
|
||||||
|
Of Hamlet’s wildness: so shall I hope your virtues
|
||||||
|
Enter Hamlet.
|
||||||
|
You need not tell us what Lord Hamlet said,
|
||||||
|
Enter Hamlet and certain Players.
|
||||||
|
How fares our cousin Hamlet?
|
||||||
|
I have nothing with this answer, Hamlet; these words are not mine.
|
||||||
|
Come hither, my dear Hamlet, sit by me.
|
||||||
|
[_Exeunt all but Hamlet and Horatio._]
|
||||||
|
[_Exeunt all but Hamlet._]
|
||||||
|
Enter Hamlet.
|
||||||
|
Enter Hamlet.
|
||||||
|
Hamlet, thou hast thy father much offended.
|
||||||
|
Why, how now, Hamlet?
|
||||||
|
O Hamlet, speak no more.
|
||||||
|
No more, sweet Hamlet.
|
||||||
|
Speak to her, Hamlet.
|
||||||
|
O Hamlet, thou hast cleft my heart in twain.
|
||||||
|
[_Exit Hamlet dragging out Polonius._]
|
||||||
|
What, Gertrude? How does Hamlet?
|
||||||
|
Hamlet in madness hath Polonius slain,
|
||||||
|
Enter Hamlet.
|
||||||
|
[_Within._] Hamlet! Lord Hamlet!
|
||||||
|
What noise? Who calls on Hamlet? O, here they come.
|
||||||
|
Enter Hamlet and Guildenstern.
|
||||||
|
Now, Hamlet, where’s Polonius?
|
||||||
|
Hamlet, this deed, for thine especial safety,—
|
||||||
|
Ay, Hamlet.
|
||||||
|
Thy loving father, Hamlet.
|
||||||
|
The present death of Hamlet. Do it, England;
|
||||||
|
Enter Hamlet, Rosencrantz, Guildenstern &c.
|
||||||
|
[_Exeunt all but Hamlet._]
|
||||||
|
I should be greeted, if not from Lord Hamlet.
|
||||||
|
Letters, my lord, from Hamlet.
|
||||||
|
From Hamlet! Who brought them?
|
||||||
|
’Tis Hamlet’s character. ’Naked!’
|
||||||
|
And that in Hamlet’s hearing, for a quality
|
||||||
|
Did Hamlet so envenom with his envy
|
||||||
|
Hamlet comes back: what would you undertake
|
||||||
|
Hamlet return’d shall know you are come home:
|
||||||
|
Enter Hamlet and Horatio, at a distance.
|
||||||
|
Hamlet o’ercame Fortinbras.
|
||||||
|
that young Hamlet was born,—he that is mad, and sent into England.
|
||||||
|
I hop’d thou shouldst have been my Hamlet’s wife;
|
||||||
|
Hamlet the Dane.
|
||||||
|
Hamlet! Hamlet!
|
||||||
|
Enter Hamlet and Horatio.
|
||||||
|
[_Hamlet moves him to put on his hat._]
|
||||||
|
Come, Hamlet, come, and take this hand from me.
|
||||||
|
[_The King puts Laertes’s hand into Hamlet’s._]
|
||||||
|
Was’t Hamlet wrong’d Laertes? Never Hamlet.
|
||||||
|
If Hamlet from himself be ta’en away,
|
||||||
|
Then Hamlet does it not, Hamlet denies it.
|
||||||
|
Hamlet is of the faction that is wrong’d;
|
||||||
|
His madness is poor Hamlet’s enemy.
|
||||||
|
Give them the foils, young Osric. Cousin Hamlet,
|
||||||
|
If Hamlet give the first or second hit,
|
||||||
|
The King shall drink to Hamlet’s better breath,
|
||||||
|
‘Now the King drinks to Hamlet.’ Come, begin.
|
||||||
|
Stay, give me drink. Hamlet, this pearl is thine;
|
||||||
|
Here, Hamlet, take my napkin, rub thy brows.
|
||||||
|
The Queen carouses to thy fortune, Hamlet.
|
||||||
|
[_Laertes wounds Hamlet; then, in scuffling, they change rapiers, and
|
||||||
|
Hamlet wounds Laertes._]
|
||||||
|
No, no, the drink, the drink! O my dear Hamlet!
|
||||||
|
It is here, Hamlet. Hamlet, thou art slain.
|
||||||
|
Exchange forgiveness with me, noble Hamlet.
|
||||||
|
Bear Hamlet like a soldier to the stage,
|
169442
TaskA01/shakespeare.in
Normal file
169442
TaskA01/shakespeare.in
Normal file
File diff suppressed because it is too large
Load Diff
2
TaskA01/simple.exp
Normal file
2
TaskA01/simple.exp
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Here comes Hamlet
|
||||||
|
Hamlet Hamlet again
|
3
TaskA01/simple.in
Normal file
3
TaskA01/simple.in
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Here comes Hamlet
|
||||||
|
ABC
|
||||||
|
Hamlet Hamlet again
|
8
TaskA02/description.txt
Normal file
8
TaskA02/description.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Write a program to find lines containing the word "pies" separated by spaces.
|
||||||
|
The word does not need to have space on the left if it is the line beginning or space on the right if it is line ending.
|
||||||
|
Return line no matter of word "pies" casing.
|
||||||
|
Do not use regular expressions, just the simplest capabilities
|
||||||
|
of a programming language.
|
||||||
|
|
||||||
|
POINTS: 1
|
||||||
|
DEADLINE: 2021-10-24 23:59:59
|
13
TaskA02/polish_wiki_excerpt.exp
Normal file
13
TaskA02/polish_wiki_excerpt.exp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Pies ten pochodzi z południowych Chin, z terenów prowincji Guangdong. Został rozpropagowany i hodowany w celach wystawowych przez hodowców w USA. Nazwa psa, pochodząca z chińskiego "shā pí" (沙皮), oznacza dosłownie "piaszczysta skóra".
|
||||||
|
Chart polski – polska rasa psa myśliwskiego, znana prawdopodobnie od czasów Galla Anonima, zaliczana do grupy chartów. Dawniej użytkowana była przede wszystkim do polowań, obecnie jako pies reprezentacyjny.
|
||||||
|
Smukły pies o wąskim pysku. Chart polski jest wyraźnie mocniejszy i nie tak finezyjny w kształtach jak inne charty. Jest najwyższą z polskich ras.
|
||||||
|
Chart polski to pies silny, wytrzymały, o dobrze zbalansowanym ciele i proporcjach (wpisany jest w prostokąt oparty na dłuższym boku) pozwalających nie tylko na szybki galop, ale i na pokonywanie dużych odległości wyciągniętym kłusem. Jest psem o okrywie włosowej dobrze chroniącej go przed zimnem, wilgocią i wiatrem.
|
||||||
|
Pies wymagający sporej dawki codziennego ruchu, stąd jest idealnym towarzyszem dla ludzi uprawiających jeździectwo lub jogging.
|
||||||
|
W filmie występuje pies rasy landseer.
|
||||||
|
Bohaterami anime jest grupa łowców nagród, podróżująca statkiem kosmicznym o nazwie "Bebop": Spike Spiegel, Faye Valentine, Jet Black, haker Ed oraz genetycznie zmodyfikowany pies Ein.
|
||||||
|
Tytułowym głównym bohaterem serii jest Lucky Luke - kowboj, najszybszy rewolwerowiec na Dzikim Zachodzie i najgorszy koszmar braci Dalton. Zawsze, gdy planują oni skok na bank lub inne przestępstwo, dzielny stróż prawa staje im na drodze. W jego przygodach towarzyszą mu inteligentny koń Jolly Jumper i pies Bzik (we francuskojęzycznym oryginale: "Rantanplan").
|
||||||
|
Serial w krzywym zwierciadle przedstawia życie typowej amerykańskiej rodziny. Jej głową i jedynym żywicielem jest wiecznie sfrustrowany sprzedawca butów, Al Bundy. Kocha swojego starego dodge'a, wolny czas spędza siedząc na kanapie, oglądając telewizję i pijąc piwo lub na posiedzeniach w toalecie. Jego małżonką jest Peggy, która całymi dniami przesiaduje przed telewizorem, oglądając "The Oprah Winfrey Show", i The Phil Donahue Show zajadając się popcornem i czekoladkami, paląc przy tym papierosa za papierosem. O jej podejściu do typowo domowych zajęć świadczą zadawane przez nią pytania, np. o odkurzacz – "Jak się nazywa to coś, co ciągniesz po dywanie, a ono buczy?" Tytułowymi dziećmi są nastoletni Bud oraz Kelly, którzy nie przepadają za sobą i nie przepuszczą żadnej okazji, aby sobie dokuczyć czy donieść na siebie. Kelly i Bud dojrzewają w trakcie trwania serialu, przez co trochę się zmieniają: Bud z wrednego kilkunastolatka przeistacza się w nastoletniego macho, którego nie chce żadna dziewczyna, a Kelly z każdą serią staje się coraz mniej inteligentna. Wiecznie niedocenianym członkiem rodziny jest pies Buck, który jednak żyje swoim życiem i sam troszczy się o siebie. W trakcie wszystkich dziesięciu lat trwania serialu Bundym towarzyszy dwójka sąsiadów: Marcy, najpierw ze swoim pierwszym mężem, Steve'em Rhoadesem, a następnie z Jeffersonem d'Arcym. Marcy lubi przebywać z Peggy, jest za to na bakier z Alem, natomiast Al utrzymuje dobre stosunki z mężami Marcy, szczególnie Jeffersonem – Steve raczej nie darzył Bundych tak bezwzględną sympatią.
|
||||||
|
Buck (prawdziwe imię Michael; trener Steven Ritt) to pies rodziny Bundych, Briard. Głosu użycza mu Kevin Curran, a w odcinkach specjalnych Cheech Marin. Zdechł w wieku dwunastu lat (w 1996 roku Michael przeszedł na emeryturę, zdechł dziewięć miesięcy po tym, jak Bucka uśmiercono w serialu).
|
||||||
|
Lucky to drugi pies rodziny Bundych, spaniel, reinkarnacja Bucka.
|
||||||
|
20 stycznia 1974 r. o godz. 10.40 w Dolinie Mięguszowieckiej wydarzyła się największa jak do owej pory katastrofa lawinowa w Tatrach. Żlebem spod Przełęczy nad Skokiem w Grani Baszt zeszła potężna lawina, która przewaliła się przez Mięguszowiecki Potok i wdarła 140 m na przeciwległy stok, wspinając się na niego z rozpędu aż 44 m w górę. Na stoku tym, na śnieżnym pólku trenowali z instruktorem uczestnicy kursu narciarskiego ze słowackiego Technikum Budowlanego. Lawina przysypała 24 z nich. Dzięki błyskawicznej akcji ratunkowej (było to tylko 400 m od schroniska nad Popradzkim Stawem) udało się odgrzebać spod śniegu 11 płycej przywalonych. W ciągu następnych godzin i kilku dni liczne zespoły ratunkowe (z pomocą przyszło również wojsko) odgrzebały ciała 10 uczestników kursu; wśród nich nauczyciela z 12-letnim synem. Pies wskazał miejsce, gdzie po 5 godzinach od zejścia lawiny wydobyto żywego 18-latka przywalonego metrową warstwą śniegu. Ciała dwóch uczniów udało się znaleźć dopiero wiosną po stopieniu się śniegu.
|
||||||
|
Początkowo Morris wykorzystał w swoich komiksach historycznych braci Daltonów Grat, Bill i Emmett, których przedstawił jako bardzo groźnych i inteligentnych przestępców. Niestety po pierwszym spotkaniu z Lucky Luke, zostali aresztowani i skazani w więzieniu na śmierć. Morris żałował potem swojej decyzji i wraz z Gościnnym wprowadził na ich miejsce, czwórkę kuzynów (także) Daltonów – Joe, Williama, Jacka i Averelle, którzy byli przeciwieństwem swoich kuzynów. Wiecznie pechowi, gamoniowaci i niezbyt inteligentni. Wkrótce stali się oni najpopularniejszymi postaciami w serii, zaraz po samym Lucky Luke i z czasem dołączył do nich pies Rantanplan. Doczekali się także solowego filmu dystrybuowanego w Polsce pt. "Lucky Luke" (oryg. "Les Dalton").
|
50000
TaskA02/polish_wiki_excerpt.in
Normal file
50000
TaskA02/polish_wiki_excerpt.in
Normal file
File diff suppressed because one or more lines are too long
3
TaskA02/simple.exp
Normal file
3
TaskA02/simple.exp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Pies ma Alę
|
||||||
|
Kot i pies to zwierzęta
|
||||||
|
pies
|
5
TaskA02/simple.in
Normal file
5
TaskA02/simple.in
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Pies ma Alę
|
||||||
|
Ala ma psa
|
||||||
|
tu nic nie ma
|
||||||
|
Kot i pies to zwierzęta
|
||||||
|
pies
|
7
TaskA03/description.txt
Normal file
7
TaskA03/description.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
Write a program to find lines containing date from 1900 to 1999 in format '19XX r.' no matter what on the left or right of the expression.
|
||||||
|
Note that part ' r.' is obligatory.
|
||||||
|
Do not use regular expressions, just the simplest capabilities
|
||||||
|
of a programming language.
|
||||||
|
|
||||||
|
POINTS: 2
|
||||||
|
DEADLINE: 2021-10-24 23:59:59
|
951
TaskA03/polish_wiki_excerpt.exp
Normal file
951
TaskA03/polish_wiki_excerpt.exp
Normal file
File diff suppressed because one or more lines are too long
1
TaskA03/polish_wiki_excerpt.in
Symbolic link
1
TaskA03/polish_wiki_excerpt.in
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../TaskA02/polish_wiki_excerpt.in
|
3
TaskA03/simple.exp
Normal file
3
TaskA03/simple.exp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Kiedyś był 1934 r.
|
||||||
|
Kiedyś był 1934 r.fsdfsdfsdf
|
||||||
|
1934 r. to jakaś data
|
5
TaskA03/simple.in
Normal file
5
TaskA03/simple.in
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Kiedyś był 1934 r.
|
||||||
|
Kiedyś był 1934 r.fsdfsdfsdf
|
||||||
|
Kiedyś był 1935 rok
|
||||||
|
1934 r. to jakaś data
|
||||||
|
1934 to też jakaś data
|
7
TaskA04/description.txt
Normal file
7
TaskA04/description.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
Write a program to find all maximum substrings of digits.
|
||||||
|
Return only these substrings separated by spaces in their order.
|
||||||
|
Do not use regular expressions, just the simplest capabilities
|
||||||
|
of a programming language.
|
||||||
|
|
||||||
|
POINTS: 3
|
||||||
|
DEADLINE: 2021-10-24 23:59:59
|
19939
TaskA04/polish_wiki_excerpt.exp
Normal file
19939
TaskA04/polish_wiki_excerpt.exp
Normal file
File diff suppressed because it is too large
Load Diff
1
TaskA04/polish_wiki_excerpt.in
Symbolic link
1
TaskA04/polish_wiki_excerpt.in
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../TaskA02/polish_wiki_excerpt.in
|
4
TaskA04/simple.exp
Normal file
4
TaskA04/simple.exp
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
34234 34 5
|
||||||
|
34535
|
||||||
|
34
|
||||||
|
1992 1999
|
5
TaskA04/simple.in
Normal file
5
TaskA04/simple.in
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
34234 34 dfd gfd 5
|
||||||
|
34535
|
||||||
|
fsdflskfjsdflk
|
||||||
|
fsdkfj sdf34fdfd
|
||||||
|
Firma powstała w 1992 r., z połączenia Authorware, Inc. (twórców pakietu Authorware) i MacroMind-Paracomp (producenta Macromind Director). W 1999 r. Macromedia zakupiła firmę Allaire i jej bi
|
@ -3,4 +3,4 @@ Note: this is just an example of a task (and a solution).
|
|||||||
The task has a solution already, do not solve it!
|
The task has a solution already, do not solve it!
|
||||||
|
|
||||||
POINTS: 1
|
POINTS: 1
|
||||||
DEADLINE: 2021-10-11 23:59:59
|
DEADLINE: 2021-10-24 23:59:59
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
Print the number lines read from the standard input.
|
Print the number lines read from the standard input.
|
||||||
|
|
||||||
POINTS: 1
|
POINTS: 1
|
||||||
DEADLINE: 2020-10-24 23:59:59
|
DEADLINE: 2021-10-24 23:59:59
|
||||||
REMAINDER 0/2
|
REMAINDER 0/2
|
||||||
|
@ -0,0 +1,87 @@
|
|||||||
|
from pathlib import Path
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
def get_tasks_sets(dir):
|
||||||
|
return [str(a.name).rstrip('.in') for a in Path(dir).glob('*in')]
|
||||||
|
|
||||||
|
def execute_task(dir):
|
||||||
|
task_sets = get_tasks_sets(dir)
|
||||||
|
for task_set in task_sets:
|
||||||
|
try:
|
||||||
|
with open(Path(dir,f'{task_set}.in')) as f_in, open(Path(dir,f'{task_set}.out'), 'w') as f_out:
|
||||||
|
process = subprocess.Popen(['python3' ,f'{dir}/run.py'],
|
||||||
|
stdin=f_in,
|
||||||
|
stdout=f_out,
|
||||||
|
stderr=subprocess.DEVNULL)
|
||||||
|
process.wait()
|
||||||
|
f_out.flush()
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def get_index():
|
||||||
|
return int(Path.cwd().name.split('-')[-1][1:30])
|
||||||
|
|
||||||
|
def is_task_set_correct(dir,task_set):
|
||||||
|
try:
|
||||||
|
with open(Path(dir,f'{task_set}.out')) as f_exp, open(Path(dir,f'{task_set}.exp')) as f_out:
|
||||||
|
f_out_lines = ''.join(f_out.readlines())
|
||||||
|
f_exp_lines = ''.join(f_exp.readlines())
|
||||||
|
return f_out_lines == f_exp_lines
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def is_task_correct(dir):
|
||||||
|
task_sets = get_tasks_sets(dir)
|
||||||
|
for task_set in task_sets:
|
||||||
|
if not is_task_set_correct(dir, task_set):
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
def does_task_match_index(dir, index):
|
||||||
|
with open(Path(dir,f'description.txt')) as f_in:
|
||||||
|
lines = f_in.readlines()
|
||||||
|
remainder_lines = [x for x in lines if x.startswith('REMAINDER')]
|
||||||
|
if len(remainder_lines) == 0:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
remainder, modulus = remainder_lines[0].split(' ')[-1].split('/')
|
||||||
|
remainder = int(remainder)
|
||||||
|
modulus = int(modulus)
|
||||||
|
return (index % modulus) == remainder
|
||||||
|
|
||||||
|
def get_tasks(index):
|
||||||
|
all_tasks = Path('.').glob('Task*')
|
||||||
|
return [task for task in all_tasks if does_task_match_index(task, index)]
|
||||||
|
|
||||||
|
def execute_all_tasks(tasks):
|
||||||
|
for task in tasks:
|
||||||
|
execute_task(task)
|
||||||
|
|
||||||
|
def get_task_points(dir):
|
||||||
|
with open(Path(dir, 'description.txt')) as f_in:
|
||||||
|
lines = f_in.readlines()
|
||||||
|
points = int([x for x in lines if x.startswith('POINTS')][0].split(' ')[-1].rstrip())
|
||||||
|
return points
|
||||||
|
|
||||||
|
|
||||||
|
def get_report(tasks):
|
||||||
|
report = dict()
|
||||||
|
for task in tasks:
|
||||||
|
if is_task_correct(task):
|
||||||
|
report[task] = get_task_points(task)
|
||||||
|
else:
|
||||||
|
report[task] = 0
|
||||||
|
return report
|
||||||
|
|
||||||
|
def print_report(report):
|
||||||
|
for k in sorted(report):
|
||||||
|
print(f'{k}: {report[k]}')
|
||||||
|
print('')
|
||||||
|
print(f'SUMMARY: {sum(report.values())}')
|
||||||
|
|
||||||
|
INDEX = get_index()
|
||||||
|
tasks = get_tasks(INDEX)
|
||||||
|
execute_all_tasks(tasks)
|
||||||
|
report = get_report(tasks)
|
||||||
|
print_report(report)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user