Pereiti prie turinio
programavimas.xyz pagalba

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.

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

  1. Parašykite kodą.
  2. Paspauskite Paleisti su pavyzdžiais arba Ctrl Enter.
  3. 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“
  1. Atverkite kortelę Savi duomenys.
  2. Kairiajame laukelyje įveskite pradinius duomenis (iki 64 KB). Jei programa skaito failą, laukelis pavadintas jo vardu, pvz., duom.txt.
  3. 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.

  1. Įsitikinkite, kad programa išlaiko pavyzdžius.
  2. Paspauskite Pateikti sprendimą arba Ctrl Shift Enter.
  3. Atsiveria kortelė Paskutinė patikra ir rodoma patikros eiga.
  4. Kai patikra baigiasi, matote rezultatą ir testus. Kaip juos skaityti, žr. Patikros rezultatai.

Redaktorių 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į.“

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

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.

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
  • Programa turi baigtis be klaidos. Jei C++ programos main grąžina ne 0, C# programa baigiasi neapdorota išimtimi arba Environment.Exit su 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.
    • StreamWriter būtina uždaryti (pvz., using var rasymas = new StreamWriter("rez.txt");), kitaip rezultatų failas liks tuščias.
    • Gijos ir Task veikia, 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, o double.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 – po z. 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.