You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+82-59Lines changed: 82 additions & 59 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,61 +1,78 @@
1
1

2
2
3
-
# Materiały przygotowujące do Olimpiady Informatycznej.
4
-
5
-
## Repozytorium ma na celu:
6
-
- Przekazanie wiedzy przydatnej w Olimpiadzie Informatycznej dla wszystkich chętnych do nauki.
7
-
- Promowanie systematycznego podejścia do treningu i zdrowych nawyków.
8
-
- Zapewnienie prostych, przystępnych narzędzi do mierzenia swojego progresu
9
-
- Naukę powszechnie stosowanych narzędzi programistycznych poprzez praktykę.
10
-
11
-
## Repozytorium zawiera:
12
-
- Rozwiązania zadań z Olimpiady Informatycznej, które napisałem, często alternatywne do omówień ze strony OI.
13
-
- Skrypty linuksowe przydatne na olimpiadzie z prostym wytłumaczeniem każdej instrukcji.
14
-
- Krótkie wykłady na temat korzystania z narzędzi linuksowych przydatnych w pisaniu i testowaniu zadań.
15
-
- Automatycznie aktualizujący się licznik rozwiązanych zadań oraz tabelę pokazującą,
16
-
które zadania z każdej z edycji OI zostały już rozwiązane z podziałem na etapy olimpiady.
17
-
Przydaje się to do mierzenia progresu, oraz do doboru zadań na treningu.
18
-
- Odnośniki do innych przydatnych źródeł.
19
-
20
-
21
-
## Struktura repozytorium:
22
-
23
-
Zawartości katalogów `skrypty`, oraz `materialy` łatwo się domyślić, zachęcam do zapoznania się z nią.
24
-
W katalogu `rozwiazania` znajdziesz wszystkie rozwiązania zadań z OI, które zaimplementowałem.
25
-
Katalog `rozwiazania/<edycja_oi>/<etap_oi>/[dzień_etapu]/<skrót zadania>` zawiera pliki dotyczące danego zadania z OI.
26
-
-`<skrót zadania>.cpp` - moje rozwiązanie zadania, które otrzymuje 100 pkt na testach na sio2/szkopule,
27
-
dodatkowo z dopiskiem `_alt` bądź `_oi` pojawiają się czasem rozwiązania alternatywne oraz wprost z omówienia zadania,
28
-
w przypadkach gdy rozwiązałem zadanie na 100 punktów na kilka różnych sposobów.
29
-
-`<skrót zadania><liczba punktów>.cpp` - Rozwiązania, które dostają mniej niż 100 punktów, takie jak bruty, bądź rozwiązania podgrup.
30
-
I dosyć często również pliki:
31
-
-`<skrót zadania>g.cpp` - moja generatorka do zadania, której używałem testując rozwiązanie.
32
-
-`<skrót zadania>chk.cpp` - moja czekerka w przypadku zadań, w których istnieje więcej niż jedno poprawne rozwiązanie inne niż generowane przez bruta.
33
-
- Katalog `virtual_contest/`, zawierający moje skrypty, generatorki, czekerki i różne podejścia do zadania w przypadku, gdy symulowałem ograniczenia czasu i widoczności werdyktów występujące na olimpiadzie, tzn. w przypadku etapów I i II olimpiady, nie mogłem poznać liczby punktów, które dostanie moje zadanie na sprawdzarce szkopuł. Testowałem rozwiązanie lokalnie, i wysyłałem dopiero po przetestowaniu. Rozwiązania zadań z III etapu mogłem wysłać do 10 rozwiązań na szkopuła poznając ich wynik.
34
-
35
-
Katalogi `checklista` oraz `.github` zawierają skrypty automatycznie generujące checklisty, nie należy ich modyfikować.
36
-
Jeśli coś nie działa, daj mi znać przez [Issue](https://github.com/Kulezi/oi/issues) na GitHubie.
37
-
38
-
Przykładowo katalog `rozwiazania/xxv/etap3/dzien1/kom/` będzie zawierał moje rozwiązania do zadania 'Liczby kompletne' z III etapu XXV OI.
39
-
Rozwiązania konkretnego zadanie można łatwo znaleźć sprawdzając, z której edycji i etapu olimpiady jest na [Liście zadań OI](https://oi.edu.pl/l/oi_zadania/),
40
-
bądź przy pomocy polecenia `grep 'nazwa zadania' -R .` wywołanego z głównego katalogu repozytorium, np. `grep `Trójkąty` -R .`.
41
-
42
-
## Jak samemu skorzystać z checklisty:
43
-
Sforkuj [szablon](https://github.com/testowyuczen/oi) tego repozytorium [klikając tutaj](https://github.com/testowyuczen/oi/fork), i w zakładce Actions swojego repozytorium kliknij `I understand my workflows, go ahead and enable them` - bez tego checklista nie będzie się aktualizować automatycznie.
44
-
45
-
### Automatyczny import rozwiązań z archiwum Szkopuła
46
-
Skryptem [oi-fetcher](https://github.com/Matian37/oi-fetcher) można zgrać do repo wszystkie rozwiązania zadań z [Archiwum OI](https://szkopul.edu.pl/task_archive/oi/) Szkopuła (zadania z konkursów niestety trzeba wgrać manualnie). Kudos [@Matian37](https://www.github.com/Matian37).
47
-
48
-
### Dodawanie nowych rozwiązań
49
-
Po wbiciu jakiegoś zadania, np ['Rycerz' z pierwszego dnia II etapu XXXI OI](https://oi.edu.pl/archive/pl/oi/31/ryc):
50
-
- Zapisz rozwiązanie. np. w pliku `rozwiazania/xxxi/etap2/dzien1/ryc/ryc.cpp`.
51
-
- Dodaj je do repozytorium wykonując `git add `rozwiazania/xxxi/etap2/dzien1/ryc/ryc.cpp`, (przy pomocy `git status` możesz zobaczyć co już dodałeś w tym commicie).
52
-
- Scommituj je np. w ten sposób: `git commit -m "Dodano rozwiązanie zadania 'Rycerz' z XXXI OI"` (jeśli zapomnieliśmy czegoś dodać wystarczy powtórzyć poprzedni krok i użyć `git commit --am`.
53
-
- Zaktualizuj repozytorium na GitHub o lokalne zmiany przy pomocy `git push`, ewentualnie `git push -f`.
54
-
- Checklista w `README.md` na GitHub zaktualizuje się automatycznie w ciągu kilku minut.
55
-
-`git pull` wciągnie aktualną wersję checklisty z GitHuba (bez tego będziesz potrzebował robić `git push -f` przy każdym pushu.
3
+
# Maksowanie OI
56
4
5
+
## Po co mi to repo?
6
+
- Żeby łatwiej przygotować się do Olimpiady Informatycznej.
7
+
- Żeby uczyć się systematycznie i mierzyć postępy.
8
+
- Żeby poznać w praktyce narzędzia programistyczne i linuksowe.
57
9
10
+
## Co tu jest?
11
+
- Automatycznie aktualizująca się checklista pokazująca, które zadania z OI zostały już zrobione.
12
+
- Implementacje wszystkich zadań z OI jakie napisałem.
13
+
- Przydatne skrypty linuksowe z prostym wyjaśnieniem każdej komendy.
14
+
- Krótkie materiały o trickach i narzędziach użytecznych przy pisaniu i testowaniu kodu.
58
15
16
+
17
+
<details>
18
+
<summary>Gdzie są jakie pliki?</summary>
19
+
20
+
📘 Przykład:
21
+
`rozwiazania/xxv/etap3/dzien1/kom/` – rozwiązania do zadania **„Liczby kompletne”** z III etapu XXV OI.
22
+
23
+
24
+
Katalog `rozwiazania/` zawiera wszystkie zadania z OI, które zaimplementowałem.
`I understand my workflows, go ahead and enable them`
54
+
— bez tego checklista nie będzie się aktualizować automatycznie.
55
+
56
+
### Automatyczny import zadań ze Szkopuła
57
+
Skrypt [oi-fetcher](https://github.com/Matian37/oi-fetcher) pozwala zgrać wszystkie rozwiązania z [Archiwum OI](https://szkopul.edu.pl/task_archive/oi/).
58
+
Zadania z konkursów trzeba dodać ręcznie.
59
+
Kudos dla [@Matian37](https://github.com/Matian37) za narzędzie.
60
+
61
+
### Dodawanie nowych rozwiązań
62
+
Załóżmy, że zrobiłeś zadanie ['Rycerz' z II etapu XXXI OI](https://oi.edu.pl/archive/pl/oi/31/ryc):
63
+
64
+
```bash
65
+
git add rozwiazania/xxxi/etap2/dzien1/ryc/ryc.cpp
66
+
git commit -m "Dodano rozwiązanie zadania 'Rycerz' z XXXI OI"
67
+
git push
68
+
```
69
+
70
+
Po kilku minutach checklista na GitHubie zaktualizuje się automatycznie.
71
+
Jeśli chcesz pobrać nową wersję checklisty lokalnie:
72
+
```bash
73
+
git pull
74
+
```
75
+
</details>
59
76
<!-- AUTO-CHECKLIST -->
60
77
61
78
> ⚠️ **UWAGA:** Sekcja poniżej jest generowana automatycznie.
@@ -70,7 +87,7 @@ Po wbiciu jakiegoś zadania, np ['Rycerz' z pierwszego dnia II etapu XXXI OI](ht
0 commit comments