Skip to content

Commit 8254629

Browse files
update README.md
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com> Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com> Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com> Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
1 parent 178885e commit 8254629

File tree

3 files changed

+96
-66
lines changed

3 files changed

+96
-66
lines changed

README.md

Lines changed: 82 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,78 @@
11
![Progres OI](checklista/oi_progress.svg)
22

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
564

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.
579

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.
5815

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.
25+
Struktura wygląda tak:
26+
`rozwiazania/<edycja_oi>/<etap_oi>/[dzień_etapu]/<skrót_zadania>/`
27+
28+
- `<skrót>.cpp` – moje rozwiązanie (100 pkt na Szkopule lub SIO2).
29+
Dodatki `_alt` lub `_oi` to alternatywne rozwiązania.
30+
- `<skrót><liczba>.cpp` – rozwiązania z mniejszą liczbą punktów (np. bruty lub podgrupy).
31+
- `<skrót>g.cpp` – generatorka testów.
32+
- `<skrót>chk.cpp` – checkerka (jeśli zadanie ma kilka poprawnych odpowiedzi).
33+
34+
Katalog `virtual_contest/` zawiera moje podejścia z symulacji zawodów (ograniczenia czasu i widoczności wyników jak na prawdziwej OI).
35+
36+
Katalogi `checklista` oraz `.github` odpowiadają za automatyczne generowanie checklisty — **nie modyfikuj ich ręcznie.**
37+
38+
Jeśli coś nie działa, daj mi znać przez [Issue](https://github.com/Kulezi/oi/issues).
39+
Chcesz znaleźć konkretne zadanie?
40+
Zajrzyj na [Listę zadań OI](https://oi.edu.pl/l/oi_zadania/)
41+
albo użyj:
42+
```bash
43+
grep 'nazwa_zadania' -R .
44+
```
45+
46+
</details>
47+
48+
<details>
49+
<summary>Jak mam tego używać?</summary>
50+
51+
1. Sforkuj [szablon repozytorium](https://github.com/testowyuczen/oi/fork).
52+
2. W zakładce **Actions** kliknij
53+
`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>
5976
<!-- AUTO-CHECKLIST -->
6077

6178
> ⚠️ **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
7087

7188
Etap I | Etap II | Etap III | Łącznie
7289
:---: | :---: | :---: | :---:
73-
43/150 (29%) | 51/157 (32%) | 42/200 (21%) | 136/507 (27%)
90+
43/150 (29%) | 52/157 (33%) | 42/200 (21%) | 137/507 (27%)
7491

7592
## Rozwiązane zadania wg edycji
7693

@@ -84,11 +101,12 @@ V | 3/16 (19%) | XV | 3/16 (19%) | XXV | 18/18 (100%) | |
84101
VI | 3/15 (20%) | XVI | 1/16 (6%) | XXVI | 11/17 (65%) | |
85102
VII | 3/15 (20%) | XVII | 6/17 (35%) | XXVII | 1/10 (10%) | |
86103
VIII | 2/15 (13%) | XVIII | 5/17 (29%) | XXVIII | 3/17 (18%) | |
87-
IX | 6/15 (40%) | XIX | 4/17 (24%) | XXIX | 1/17 (6%) | |
104+
IX | 6/15 (40%) | XIX | 4/17 (24%) | XXIX | 2/17 (12%) | |
88105
X | 2/16 (12%) | XX | 5/17 (29%) | XXX | 1/17 (6%) | |
89106

90107

91-
## Rozwiązane zadania z I etapu
108+
<details>
109+
<summary>Rozwiązane zadania z I etapu</summary>
92110

93111
Edycja | zad. 1 | zad. 2 | zad. 3 | zad. 4 | zad. 5 | zad. 6
94112
:--- | ---: | ---: | ---: | ---: | ---: | ---:
@@ -124,9 +142,11 @@ XXIX | | | | | | —
124142
XXX | kol ✅ | | | | | —
125143
XXXI | cza ✅ | | | | | —
126144
XXXII | bit ✅ | wal ✅ | spr ✅ | zam ✅ | usu ✅ | kas 🤔
145+
</details>
127146

128147

129-
## Rozwiązane zadania z II etapu
148+
<details>
149+
<summary>Rozwiązane zadania z II etapu</summary>
130150

131151
Edycja | zad. próbne | Dzień 1 - zad. 1 | Dzień 1 - zad. 2 | Dzień 2 - zad. 1 | Dzień 2 - zad. 2
132152
:--- | ---: | ---: | ---: | ---: | ---:
@@ -158,13 +178,15 @@ XXV | prz ✅ | dro ✅ | kon ✅ | tom ✅ | tel ✅
158178
XXVI | roz ✅ | gwi ✅ | kol ✅ | cyk ✅ | osi ✅
159179
XXVII | | czw ✅ | | |
160180
XXVIII | | ple ✅ | | pla ✅ |
161-
XXIX | | | | kon ✅ |
181+
XXIX | | | | kon ✅ | bom ✅
162182
XXX | | | | |
163183
XXXI | | lic ✅ | ryc ✅ | poj ✅ |
164184
XXXII | sss ✅ | drz ✅ | | |
185+
</details>
165186

166187

167-
## Rozwiązane zadania z III etapu
188+
<details>
189+
<summary>Rozwiązane zadania z III etapu</summary>
168190

169191
Edycja | Dzień próbny, zad. 1 | Dzień próbny, zad. 2 | Dzień 1 - zad. 1 | Dzień 1 - zad. 2 | Dzień 1 - zad. 3 | Dzień 2 - zad. 1 | Dzień 2 - zad. 2 | Dzień 2 - zad. 3
170192
:--- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---:
@@ -199,3 +221,4 @@ XXVIII | | — | | | | | |
199221
XXIX | | | | | | | |
200222
XXX | | — | | | | | |
201223
XXXI | | — | | | | | |
224+
</details>

checklista/oi_progress.svg

Lines changed: 7 additions & 7 deletions
Loading

checklista/tasks.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -867,6 +867,13 @@
867867
"nazwa": "kon",
868868
"punkty": 100
869869
},
870+
"xxix_etap2_dzien2_bom": {
871+
"edycja": 29,
872+
"etap": 2,
873+
"dzien": 2,
874+
"nazwa": "bom",
875+
"punkty": 100
876+
},
870877
"xxx_etap1_kol": {
871878
"edycja": 30,
872879
"etap": 1,

0 commit comments

Comments
 (0)