Skip to content

Commit 5dc77a7

Browse files
committed
update README.md
1 parent 178885e commit 5dc77a7

File tree

1 file changed

+70
-195
lines changed

1 file changed

+70
-195
lines changed

README.md

Lines changed: 70 additions & 195 deletions
Original file line numberDiff line numberDiff line change
@@ -1,201 +1,76 @@
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

59-
<!-- AUTO-CHECKLIST -->
6016

61-
> ⚠️ **UWAGA:** Sekcja poniżej jest generowana automatycznie.
62-
> Nie modyfikuj README poniżej tego napisu.
63-
> ✅ oznacza wykonane zadanie.
64-
> 🤔 oznacza zadanie z mniej niż 100 punktów.
65-
66-
67-
# Podsumowanie
68-
69-
## Rozwiązane zadania wg etapów
70-
71-
Etap I | Etap II | Etap III | Łącznie
72-
:---: | :---: | :---: | :---:
73-
43/150 (29%) | 51/157 (32%) | 42/200 (21%) | 136/507 (27%)
74-
75-
## Rozwiązane zadania wg edycji
76-
77-
Edycja | Wynik | Edycja | Wynik | Edycja | Wynik | Edycja | Wynik
78-
:--- | ---: | :--- | ---: | :--- | ---: | :--- | ---:
79-
I | 3/10 (30%) | XI | 2/16 (12%) | XXI | 6/17 (35%) | XXXI | 4/17 (24%)
80-
II | 4/14 (29%) | XII | 4/17 (24%) | XXII | 6/17 (35%) | XXXII | 7/18 (39%)
81-
III | 2/13 (15%) | XIII | 5/16 (31%) | XXIII | 3/17 (18%) | |
82-
IV | 3/16 (19%) | XIV | 3/16 (19%) | XXIV | 6/16 (38%) | |
83-
V | 3/16 (19%) | XV | 3/16 (19%) | XXV | 18/18 (100%) | |
84-
VI | 3/15 (20%) | XVI | 1/16 (6%) | XXVI | 11/17 (65%) | |
85-
VII | 3/15 (20%) | XVII | 6/17 (35%) | XXVII | 1/10 (10%) | |
86-
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%) | |
88-
X | 2/16 (12%) | XX | 5/17 (29%) | XXX | 1/17 (6%) | |
89-
90-
91-
## Rozwiązane zadania z I etapu
92-
93-
Edycja | zad. 1 | zad. 2 | zad. 3 | zad. 4 | zad. 5 | zad. 6
94-
:--- | ---: | ---: | ---: | ---: | ---: | ---:
95-
I | pio ✅ | tro ✅ | | — | — | —
96-
II | jed ✅ | pal ✅ | | | — | —
97-
III | gon ✅ | | | | — | —
98-
IV | | | | | — | —
99-
V | sum ✅ | wie ✅ | | | — | —
100-
VI | gra ✅ | | | | — | —
101-
VII | bro ✅ | | | | — | —
102-
VIII | ant ✅ | | | | — | —
103-
IX | kom ✅ | kol ✅ | | | — | —
104-
X | cze ✅ | | | | | —
105-
XI | zaw ✅ | gra ✅ | | | | —
106-
XII | | | | | | —
107-
XIII | kra ✅ | okr ✅ | | | | —
108-
XIV | | | | | | —
109-
XV | pla ✅ | | | | | —
110-
XVI | | | | | | —
111-
XVII | kor ✅ | tes ✅ | | | | —
112-
XVIII | liz ✅ | | | | | —
113-
XIX | odl ✅ | | | | | —
114-
XX | | | | | | —
115-
XXI | kur ✅ | | | | | —
116-
XXII | kin ✅ | | | | | —
117-
XXIII | | | | | | —
118-
XXIV | fla ✅ | | | | | —
119-
XXV | pow ✅ | roz ✅ | pra ✅ | pla ✅ | pio ✅ | —
120-
XXVI | rob ✅ | klu ✅ | par ✅ | nie ✅ | pod ✅ | —
121-
XXVII | | | | | | —
122-
XXVIII | gan ✅ | | | | | —
123-
XXIX | | | | | | —
124-
XXX | kol ✅ | | | | | —
125-
XXXI | cza ✅ | | | | | —
126-
XXXII | bit ✅ | wal ✅ | spr ✅ | zam ✅ | usu ✅ | kas 🤔
127-
128-
129-
## Rozwiązane zadania z II etapu
130-
131-
Edycja | zad. próbne | Dzień 1 - zad. 1 | Dzień 1 - zad. 2 | Dzień 2 - zad. 1 | Dzień 2 - zad. 2
132-
:--- | ---: | ---: | ---: | ---: | ---:
133-
I | | prz ✅ | — | | —
134-
II | | tro ✅ | | |
135-
III | | | — | haz ✅ |
136-
IV | | | | |
137-
V | | row ✅ | | |
138-
VI | | lun ✅ | | |
139-
VII | | | | |
140-
VIII | | | | |
141-
IX | izo ✅ | dzi ✅ | | |
142-
X | | aut ✅ | | |
143-
XI | | | | |
144-
XII | | ban ✅ | | kos ✅ |
145-
XIII | | naj ✅ | | |
146-
XIV | | ska ✅ | | tet ✅ |
147-
XV | | | | |
148-
XVI | | | | arc ✅ |
149-
XVII | | cho ✅ | klo ✅ | |
150-
XVIII | | roz ✅ | | |
151-
XIX | | sza ✅ | | roz ✅ | okr ✅
152-
XX | | luk ✅ | | mor ✅ |
153-
XXI | | prz ✅ | | pta ✅ |
154-
XXII | | pus ✅ | | trz ✅ | kur ✅
155-
XXIII | | dro ✅ | zaj ✅ | |
156-
XXIV | | sum ✅ | | kon ✅ | zam ✅
157-
XXV | prz ✅ | dro ✅ | kon ✅ | tom ✅ | tel ✅
158-
XXVI | roz ✅ | gwi ✅ | kol ✅ | cyk ✅ | osi ✅
159-
XXVII | | czw ✅ | | |
160-
XXVIII | | ple ✅ | | pla ✅ |
161-
XXIX | | | | kon ✅ |
162-
XXX | | | | |
163-
XXXI | | lic ✅ | ryc ✅ | poj ✅ |
164-
XXXII | sss ✅ | drz ✅ | | |
165-
166-
167-
## Rozwiązane zadania z III etapu
168-
169-
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
170-
:--- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---:
171-
I | | — | | | — | | — | —
172-
II | | — | | | — | sze ✅ | | —
173-
III | | — | | | — | | | —
174-
IV | | — | kaj ✅ | tro ✅ | | rez ✅ | | —
175-
V | | — | | | | | |
176-
VI | | — | mag ✅ | | — | | |
177-
VII | | — | | | — | pow ✅ | age ✅ |
178-
VIII | | — | | | — | kop ✅ | |
179-
IX | min ✅ | — | | | — | szy ✅ | |
180-
X | | — | | | — | | |
181-
XI | | — | | | | | | —
182-
XII | dzi ✅ | — | | | | aut ✅ | |
183-
XIII | | — | | | — | pal ✅ | zos ✅ |
184-
XIV | | — | | | — | klo ✅ | |
185-
XV | | — | kup ✅ | | | sta ✅ | | —
186-
XVI | | — | | | | | | —
187-
XVII | | — | zab ✅ | | | pil ✅ | |
188-
XVIII | | — | imp ✅ | | | pat ✅ | met ✅ |
189-
XIX | | — | | | | | |
190-
XX | | — | lan ✅ | baj ✅ | | gdz ✅ | |
191-
XXI | far ✅ | — | tur ✅ | | | pan ✅ | |
192-
XXII | | — | wil ✅ | | | kol ✅ | |
193-
XXIII | | — | zyw ✅ | | | | |
194-
XXIV | piz ✅ | — | zap ✅ | | | | | —
195-
XXV | trz ✅ | dwa ✅ | tur ✅ | kom ✅ | ogr ✅ | ddl ✅ | tak ✅ | wie ✅
196-
XXVI | | — | | | | dlu ✅ | |
197-
XXVII | — | — | — | — | — | — | — | —
198-
XXVIII | | — | | | | | |
199-
XXIX | | | | | | | |
200-
XXX | | — | | | | | |
201-
XXXI | | — | | | | | |
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>
76+
<!-- AUTO-CHECKLIST -->

0 commit comments

Comments
 (0)