Paleidimas ir pateikimas
Kuo skiriasi paleidimas su pavyzdžiais, paleidimas su savais duomenimis ir sprendimo pateikimas, kaip vyksta patikra ir kokios taikomos ribos.
Redaktoriuje programą galite paleisti – pasitikrinti, ar ji veikia, – arba pateikti – atiduoti vertinti. Paleidimai nevertinami ir neskaičiuojami kaip bandymai, o kiekvienas pateiktas sprendimas vertinamas ir išsaugomas.
Kur vykdomas kodas
Skyrius „Kur vykdomas kodas“Jūsų kodas vykdomas ne naršyklėje ir ne programos serveryje, o atskiroje tikrinimo sistemoje – izoliuotoje aplinkoje be interneto prieigos.
| Kalba | Kaip vykdoma |
|---|---|
| C++ | Kompiliuojama g++ 14 kompiliatoriumi, GNU C++20 standartu, su optimizavimu (-O2). Apibrėžtas simbolis ONLINE_JUDGE. Kompiliatorius įspėja apie dažnas klaidas (-Wall), bet ne apie int ir size_t palyginimą, pvz., i < v.size() |
| Python | Python 3.13, tik standartinė biblioteka |
| C# | C# 14, .NET 10, su optimizavimu. Programą galima rašyti su Main metodu arba be jo (sakiniais iš karto faile). Įprasti naujo konsolės projekto using (System, System.Collections.Generic, System.IO, System.Linq ir kt.) jau įtraukti. Apibrėžtas simbolis ONLINE_JUDGE. Tik standartinė biblioteka; žr. patarimus |
Trys veiksmai
Skyrius „Trys veiksmai“| Paleisti su pavyzdžiais | Paleisti su savais duomenimis | Pateikti sprendimą | |
|---|---|---|---|
| Kur | Viršutinė juosta, Ctrl Enter | Kortelė Savi duomenys | Viršutinė juosta, Ctrl Shift Enter |
| Duomenys | Sąlygos pavyzdžiai | Jūsų įvesti duomenys | Visi testai, įskaitant paslėptus |
| Ką gaunate | Ar išlaikytas kiekvienas pavyzdys | Programos išvestį | Patikros rezultatą ir taškus |
| Naudoja bandymą | Ne | Ne | Taip |
| Išsaugoma istorijoje | Ne | Ne | Taip, skiltyje Sprendimai |
| Kontrolinio darbo metu | Galima | Negalima | Galima |
| Temai pasibaigus | Galima | Galima | Negalima |
| Ribos | Užduoties laiko riba, bet ne daugiau kaip 2 s; atmintis ne daugiau kaip 512 MB | Kaip paleidžiant su pavyzdžiais | Užduoties laiko ir atminties ribos |
macOS kompiuteryje vietoj Ctrl spauskite ⌘. Šie klavišai veikia ir tada, kai fokusas yra kitur redaktoriaus lange.
Paleidimas su pavyzdžiais
Skyrius „Paleidimas su pavyzdžiais“- Parašykite kodą.
- Paspauskite Paleisti su pavyzdžiais arba Ctrl Enter.
- Apačioje atsiveria kortelė Testai: kol programa vykdoma, matote eigą, o paskui – kiekvieno pavyzdžio rezultatą.
Jei visi pavyzdžiai išlaikyti, matote „Visi pavyzdžiai išlaikyti“. Kitu atveju – pirmojo neišlaikyto pavyzdžio rezultatą, pvz., „Neteisingas atsakymas“, ir „Išlaikyta pavyzdžių: 1 iš 2“. Paspaudę pavyzdžio eilutę, pamatysite pradinius duomenis, laukiamus rezultatus, jūsų programos rezultatus ir klaidų išvestį.
Jei kodas nesikompiliuoja, matote „Kompiliavimo klaida“ ir nuorodą Rodyti kompiliatoriaus pranešimus.
Pavyzdžiai – tik pradžia: įvertinimą lemia ir paslėpti testai. Juos matysite, kai sprendimas bus patikrintas.
Paleidimas su savais duomenimis
Skyrius „Paleidimas su savais duomenimis“- Atverkite kortelę Savi duomenys.
- Kairiajame laukelyje įveskite pradinius duomenis (iki 64 KB). Jei programa skaito failą, laukelis pavadintas jo vardu, pvz.,
duom.txt. - Paspauskite Paleisti su savais duomenimis arba laukelyje Ctrl Enter.
Dešinėje matote, ką programa išvedė į ekraną, arba – jei ji rašo failą – rezultatų failo turinį. Jei failas nesukurtas, parašyta, pvz., „Failas rez.txt nesukurtas.“ Po išvestimi rodoma klaidų išvestis (jei ji yra), vykdymo laikas, sunaudota atmintis, išėjimo kodas (jei ne 0) ir signalas, kuriuo programa nutraukta.
Laukiamų rezultatų čia nėra, todėl „Priimta“ negausite. Jei programa baigė darbą be klaidų, matote „Programa baigė darbą“, o jei viršijo ribą ar nulūžo – atitinkamą rezultatą, pvz., „Viršyta laiko riba“.
Savi duomenys įsimenami šioje naršyklėje kartu su juodraščiu.
Vienas paleidimas vienu metu
Skyrius „Vienas paleidimas vienu metu“Vienu metu vykdomas tik vienas jūsų paleidimas. Jei paleidžiate naują, kol ankstesnis dar nebaigtas, ankstesnis atšaukiamas: „Šis paleidimas atšauktas, nes pradėtas naujas.“
Paleidimų rezultatai lieka redaktoriuje, kol jį uždarote. Į sprendimų istoriją jie nepatenka.
Sprendimo pateikimas
Skyrius „Sprendimo pateikimas“- Įsitikinkite, kad programa išlaiko pavyzdžius.
- Paspauskite Pateikti sprendimą arba Ctrl Shift Enter.
- Atsiveria kortelė Paskutinė patikra ir rodoma patikros eiga.
- Kai patikra baigiasi, matote rezultatą ir testus. Kaip juos skaityti, žr. Patikros rezultatai.
students/learning/editor-last-resultRedaktorių galite uždaryti iškart po pateikimo – sprendimas vis tiek bus patikrintas. Rezultatą rasite skiltyje Sprendimai, o gautuosiuose atsiras pranešimas (jį galite išjungti skiltyje Nustatymai → Pranešimai, punktas „Sprendimų rezultatai“).
Jei pateikti negalima, mygtukas Pateikti sprendimą neaktyvus, o užvedę ant jo pelę matote priežastį, pvz., „Šiandienos bandymai išnaudoti. Jie atsinaujins vidurnaktį.“
Patikros eiga
Skyrius „Patikros eiga“Kol sprendimas ar paleidimas tikrinamas, skydelyje matote jo būseną ir kiek laiko praėjo:
| Būsena | Ką reiškia |
|---|---|
| Siunčiama… | Kodas siunčiamas į serverį |
| Laukia eilėje | Laukia laisvos tikrinimo sistemos vietos |
| Kompiliuojama | C++ ir C# kodas kompiliuojamas, Python kodas tikrinamas, ar nėra sintaksės klaidų |
| Testuojama | Vykdomi testai. Šalia rodoma eiga, pvz., „3 iš 10“ |
| Patikrinta | Patikra baigta, rodomas rezultatas |
| Sistemos klaida | Patikrinti nepavyko dėl sistemos kaltės. Toks bandymas neskaičiuojamas |
| Atšaukta | Paleidimas atšauktas, nes pradėtas naujas |
Būsena atsinaujina pati, puslapio įkelti iš naujo nereikia.
- Jei sprendimas eilėje laukia ilgiau nei minutę, matote „Tikrinimo sistema šiuo metu užimta arba nepasiekiama. Sprendimas išsaugotas ir bus patikrintas, kai tik ji atsilaisvins.“ Nieko daryti nereikia.
- Paleidimui tokiu atveju siūloma pakartoti: „… Paleiskite programą dar kartą po kelių akimirkų.“ ir mygtukas Kartoti.
- Nutrūkus ryšiui matote „Nėra ryšio su serveriu – būsena atsinaujins, kai tik ryšys grįš.“
- Jei būsenos gauti nepavyksta – „Būsenos gauti nepavyko. Įkelkite puslapį iš naujo.“
Bandymų ribos
Skyrius „Bandymų ribos“Kursas gali riboti, kiek sprendimų per dieną galite pateikti kiekvienai užduočiai. Likusius bandymus matote užduoties puslapyje („Liko 3 iš 5“) ir redaktoriaus apatiniame skydelyje („Liko bandymų šiandien: 3 iš 5“). Jei ribos nėra – „Bandymų skaičius per dieną neribojamas“.
- Bandymu laikomas kiekvienas pateiktas sprendimas, išskyrus tuos, kurie gavo „Kompiliavimo klaida“, „Sistemos klaida“ arba „Tikrinimo klaida“.
- Dar tikrinami sprendimai bandymais laikomi.
- Paleidimai su pavyzdžiais ir savais duomenimis bandymų nenaudoja.
- Bandymai atsinaujina vidurnaktį Lietuvos laiku.
Išnaudojus bandymus, pateikti nebegalima iki kitos dienos: „Šiandienos bandymai išnaudoti. Kitas bandymas – …“. Paleisti programą galite ir toliau.
Kada sprendimas nepriimamas
Skyrius „Kada sprendimas nepriimamas“| Pranešimas | Priežastis |
|---|---|
| „Palaukite, kol bus patikrinti ankstesni sprendimai.“ | Jau turite tris dar nepatikrintus sprendimus |
| „Per daug užklausų per trumpą laiką. Palaukite 20 s ir pakartokite.“ | Per minutę pateikėte daugiau nei 6 sprendimus arba paleidote programą daugiau nei 12 kartų |
| „Kodas tuščias.“ | Redaktoriuje nėra kodo |
| „Kodas per ilgas: daugiausia 256 KB.“ | Kodas didesnis nei 256 KB |
| „Duomenys per ilgi: daugiausia 64 KB.“ | Savi duomenys didesni nei 64 KB |
| „Šiai užduočiai ši programavimo kalba neleidžiama.“ | Kalba neleidžiama šioje užduotyje |
| „Ši užduotis dar neatidaryta.“ | Tema dar neprasidėjo |
| „Sprendimų priėmimas baigėsi …“ | Tema pasibaigė (paleisti dar galima) |
| „Kontrolinio darbo metu programą galima paleisti tik su pavyzdžiais.“ | Vyksta kontrolinis darbas |
| „Ši užduotis neturi pavyzdinių testų. Paleiskite programą su savais duomenimis.“ | Užduotyje nėra pavyzdžių |
| „Užduotis atnaujinta. Įkelkite ją iš naujo, kad matytumėte naują sąlygą – kodas išsaugotas.“ | Mokytojas paskelbė naują užduoties versiją. Paspauskite Įkelti iš naujo |
| „Sesija baigėsi. Prisijunkite iš naujo – kodas išsaugotas šiame įrenginyje.“ | Baigėsi prisijungimo sesija |
| „Išsiųsti nepavyko. Kodas išsaugotas šiame įrenginyje – pakartokite.“ | Ryšio ar serverio klaida |
Patarimai
Skyrius „Patarimai“- Programa turi baigtis be klaidos. Jei C++ programos
maingrąžina ne 0, C# programa baigiasi neapdorota išimtimi arbaEnvironment.Exitsu ne nuliu, ar Python programa baigiasi klaida (pvz.,sys.exit(1)ar neapdorota išimtis), testas gauna „Vykdymo klaida“, net jei rezultatai teisingi. - Failų užduotyse iš klaviatūros nieko neateina: programa turi skaityti duomenų failą ir rašyti į rezultatų failą. Į ekraną išvesti rezultatai nevertinami.
- Python – tik standartinė biblioteka; kiti paketai (pvz.,
numpy) neįdiegti. - C# – tik .NET standartinė biblioteka; NuGet paketų nėra.
StreamWriterbūtina uždaryti (pvz.,using var rasymas = new StreamWriter("rez.txt");), kitaip rezultatų failas liks tuščias.- Gijos ir
Taskveikia, bet laiko limitas skaičiuoja visų gijų procesoriaus laiką kartu. Paleisti kitų programų negalima. - Dalį atminties limito užima pati .NET aplinka (apie 16–25 MB).
- Skaičiuose visada taškas, kad ir kokie būtų jūsų kompiuterio nustatymai:
double.Parse("3.5")yra 3,5, odouble.Parse("3,5")– 35. - Eilutės lyginamos ir rikiuojamos pagal simbolių kodus, kaip C++ ir Python:
"B"eina prieš"a", o lietuviškos raidės – poz. Jūsų kompiuteryje rikiavimas gali skirtis.
ONLINE_JUDGE. Jei savo kompiuteryje duomenis skaitote iš failo, o užduotis naudoja standartinę įvestį, failo atidarymą galite apgaubti#ifndef ONLINE_JUDGE(C# –#if !ONLINE_JUDGE) – tikrinimo sistemoje jis nebus vykdomas.