O arhivă care sper să devină cât se poate de completă cu probleme din trecut de la olimpiade
de info.
Concursurile la care mă gândeam că trebuie track-uite ar fi:
- OJI / ONI
- Loturi
- BOI
- CEOI
- IATI
Pentru a contribui, vezi aici. Orice issue este bine-venit. La fel și pull request-urile, dar citește secțiunea de contribuții mai întâi.
Pe GitHub nu poți să descarci subdirectoare particulare. Pentru asta, poți folosi download-directory.
O problemă trebuie să aibă patru directoare: enunt, teste, editorial, surse. Foarte important să
fie cu litere mici toate. Opțional, poate exista și câte un README.md ca să poate fi citit ușor. De asemenea pentru a merge cu
scriptul de aici care se uită peste tot și face un rezumat este să existe
o linie goală la sfârșitul readme-ului ca să nu arate urât formatarea.
Dacă pentru o problemă nu s-a găsit ceva, de exemplu teste, sau ceva, puneți un fișier missing.md
. Dacă ați găsit ceva, dar
nu este complet sau este ceva stricat la structură, atunci puneți un fișier broken.md
.
În mod similar, fișierele trebuie să aibă litere mici, deoarece scriptul este case-sensitive.
Pentru o colecție mai mare de probleme, se pot pune oricum, dar ar fi bine să existe o ordine. Pentru
alte concursuri nu știu cum ar fi mai bine făcut, dar pentru OJI/ONI, structura arată ceva de genul:
ONI/
├─ 2019/
│ ├─ 9/
│ ├─ 10/
│ │ ├─ ziua-1/
│ │ │ ├─ scara/
│ │ │ │ ├─ enunt/
│ │ │ │ ├─ teste/
│ │ │ │ ├─ editorial/
│ │ │ │ ├─ surse/
│ │ │ ├─ walle/
│ │ │ ├─ artifact/
│ │ ├─ ziua-2/
│ ├─ 11-12/
│ ├─ baraj/
Nu mi-e 100% clar cum ar trebui făcut cu problemele interactive. Cred ca cel mai bine ar fi ca în
teste să se pună și interactorul. Dacă nu există interactor, se pune imediat un "broken.md".
O altă chestie despre conținut, ar fi bine să fie cât mai aproape de realitate. De exemplu,
la niște probleme am vrut să le iau de pe Infoarena, dar am găsit până la urmă testele originale.
Dacă nu se găsește nimic pentru un concurs, atunci vom pune niște variante alternative.
Pentru problemele care au teste gigantice, probabil nu le voi pune pe GitHub, mai bine punem un
readme în fișierul cu teste care să aibă un link care duce la teste. De preferat, linkul acela
ar trebui să fie unul care să nu crape.
De asemenea, fiecare problemă mai poate conține și un fișier mirrors.json
unde se află linkuri
pe platforme unde se pot rezolva problemele. Acesta va avea structura următoare:
{
"InfoArena": "https://infoarena.ro/problema/scara5",
"PBInfo": "https://www.pbinfo.ro/probleme/3049/scara2"
}
Fiecare fișier poate avea un README.md. Scriptul de mai sus va modifica acest fișier și va adăuga
un rezumat la sfârșit cu ce chestii care lipsesc. Este foarte important să nu se modifice nimic la partea
generată. Dacă pentru un README încă nu s-a generat nimic, să fie două "\n"-uri la sfârșit, altfel
README-ul va arăta urât.
Nume |
Enunt |
Teste |
Editorial |
Surse |
Mirrors |
apa |
Ok |
Ok |
Gol |
Ok |
|
benzi |
Ok |
Incomplet |
Gol |
Ok |
|
sirdacic |
Ok |
Ok |
Gol |
Ok |
|
Nume |
Enunt |
Teste |
Editorial |
Surse |
Mirrors |
circular |
Ok |
Ok |
Ok |
Gol |
pbinfo |
pulsar |
Ok |
Ok |
Ok |
Gol |
pbinfo |
transport |
Ok |
Incomplet |
Ok |
Gol |
pbinfo |
Nume |
Enunt |
Teste |
Editorial |
Surse |
Mirrors |
balba |
Ok |
Ok |
Ok |
Gol |
pbinfo |
oneout |
Ok |
Incomplet |
Ok |
Gol |
pbinfo |
pergament |
Ok |
Ok |
Ok |
Gol |
pbinfo |
Nume |
Enunt |
Teste |
Editorial |
Surse |
Mirrors |
arcade |
Ok |
Ok |
Ok |
Ok |
Kilonova |
comun |
Ok |
Ok |
Ok |
Ok |
Kilonova |
matrice |
Ok |
Ok |
Ok |
Ok |
Kilonova |
Nume |
Enunt |
Teste |
Editorial |
Surse |
Mirrors |
biom |
Ok |
Ok |
Ok |
Ok |
Kilonova |
keidei |
Ok |
Ok |
Ok |
Ok |
Kilonova |
xidartros |
Ok |
Incomplet |
Ok |
Ok |
Kilonova |
Nume |
Enunt |
Teste |
Editorial |
Surse |
Mirrors |
bolovani |
Ok |
Ok |
Ok |
Ok |
Kilonova |
nisip |
Ok |
Incomplet |
Ok |
Ok |
Kilonova |
pietricele |
Ok |
Ok |
Ok |
Ok |
Kilonova |