Prvo kolo UPM 2015

Po poskusnem kolu, ki smo ga uspešno prestali, je prišel čas za prvo kolo Univerzitetnega programerskega maratona 2015. V četrtek, 16. 4. 2015, bo šlo zares! Tekmovalci se v učilnicah zberete ob 16:00, tekmovanje pa se bo predvidoma začelo ob 16:15.

V Mariboru se dobimo v učilnici F-102 na Smetanovi 17.

V Kopru se dobimo v učilnici FAMNIT-P-RU2.

V Ljubljani bo tekmovanje potekalo v računalniških učilnicah v stavbi Fakultete za računalništvo in informatiko, ki se nahaja na naslovu Večna pot 113 (zemljevid). Glavni vhod je skozi sredinski objekt, FRI pa je stavba na levi strani. Več informacij najdete na spletnih straneh fakultete - kako do nas? in kje je kaj? Če ne poznate lokacije, si prosim vzemite dovolj časa, da jo najdete.

Pozor, nekatere ljubljanske ekipe bodo tekmovale v računalniški učilnici FKKT-11 na Fakulteti za kemijo in kemijsko tehnologijo, ki je preko sredinskega objekta povezana s FRI. Računalniška učilnica FKKT-11 je prva učilnica na levi strani, ko iz sredinskega objekta zavijete čez mostiček v stavbo FKKT.

Zaradi rekordnega števila prijavljenih ekip bodo učilnice zelo zasedene. Tekmovalce prosimo za razumevanje in uvidevnost do drugih ekip med tekmovanjem.

Razpored ljubljanskih ekip po učilnicah je sledeč:

  • FRI-06: {"Java only", "Gladiatorji", "VGV", "|) |_| |-| ( |", "Master of Coin", "Null Terminators", "Ancient Geeks", "You shall not compile"}
  • FRI-07: {"Africa's finest", "potato is life, potato is love.", "StereoTypes", "Lorem Ipsum", "Define not defined", "Vlakec Tomaž in njegova programerska žilica", "ProgrameroVICi", "QuickSort"}
  • FRI-10: {"Umiti zobki", "Siloni", "QweEcika", "Čebišev, bi že šev", "muzik.si", "otroci_iz_zavoda", "Pytheons", "dtpdj"}
  • FRI-16: {"Seed AI", "DreamTeam", "Razfas", "Vegi", "March of the Poozers", "fletTeam", "try{}catch(){}finally{}", "C-SICK"}
  • FRI-17: {"BlueSky", "Programatorji", "The A team", "Interdisciplinarci", "Pompedini", "Brokoli", "Ekipa", "SVM"}
  • FKKT-11: {"Void main()", "MiNi", "#2498F1", "Bizuky Team", "0x00000000", "Pitoni++", "French Toast Mafia", "Coffee Addicts", "U3PM", "Veliki poker"}

Tekmovalce tudi prosimo, da si preberejo posodobljeni pravilnik tekmovanja UPM, da ne bo med tekmovanjem prišlo do kakšnih neljubih situacij. To še posebej velja za tiste, ki sodelujete prvič.

Po koncu tekmovanja se zberemo v avli Fakultete za računalništvo in informatiko. V eni od prostih predavalnic bo sledila še predstavitev rešitev tekmovalnih nalog in razglasitev rezultatov.

Pripravili smo vam še nekaj navodil in koristnih nasvetov:

  1. S seboj imate lahko knjige in zapiske. Lahko si natisnete tudi izvorno kodo algoritmov (na papir) in jo imate s seboj na tekmovanju. Ne smete pa imeti nič elektronskega (razen srčnega spodbujevalnika). Mobiteli, USB ključi, iPodi in podobne naprave so torej prepovedane. Prav tako ni dovoljeno uporabljati interneta. Dokumentacija bo dostopna na sodniškem sistemu.
  2. Če programirate v C/C++ poskrbite, da bo na dnu funkcije main stavek return 0; Če se vaš program ne bo končal s kodo 0, bo sodniški sistem mislil, da se je sesul. Prav tako ne kličite system("PAUSE"); ali česa podobnega.
  3. V C/C++ je pri nalogah, ki imajo veliko količino vhodnih podatkov, pametno uporabljati funkciji printf in scanf, saj sta hitrejši od streamov (cin in cout). Na velike vhodne podatke bodite pozorni tudi v drugih programskih jezikih.
  4. Vprašanja, ki se nanašajo na naloge (če mislite, da je v besedilu napaka, če je nejasno napisano ipd.), lahko postavljate na temu namenjenem forumu (na sodniškem sistemu je pod besedilom naloge povezava na ta forum). Nadzorne osebe v učilnicah na tovrstna vprašanja ne smejo odgovarjati. Na njih se lahko obrnete v primeru, če vam ne deluje hardware ipd.
  5. Slovenski razpored tipk na tipkovnici lahko nastavite v ukazni vrstici:
    $ setxkbmap si
    Če želite ameriški razpored tipk:
    $ setxkbmap us
  6. Prepričajte se, da vaš program deluje pravilno na primeru vhoda, ki je naveden pri nalogi. Vhodne podatke lahko shranite v datoteko npr. "vhod.txt". V ukazni vrstici lahko program (denimo, da se le-ta imenuje "naloga") potem kličete takole:
    $ ./naloga < vhod.txt > izhod.txt
    Namesto s standardnega vhoda (tipkovnice) bo program podatke bral iz datoteke "vhod.txt" in pisal v datoteko "izhod.txt" namesto na standardni izhod (zaslon).
  7. Tipično so naloge take, da vhod sestoji iz več testnih primerov. Opis vhodnih podatkov je tipično nekaj takega: "Prva vrstica vsebuje celo število T. Sledi T testnih primerov ..." Splača se program preizkusiti tudi tako, da "podvojite" testne primere. Na primer iz vhodnih podatkov
    3
    Primer A
    Primer B
    Primer C

    naredite

    6
    Primer A
    Primer B
    Primer C
    Primer A
    Primer B
    Primer C

    Če program na drugi "kopiji" podatkov ne daje enakih rezultatov kot na prvi, ste najbrž pozabili nekaj inicializirat.

  8. Na sodniškem sistemu je v dokumentaciji navedeno, s katerimi stikali se prevajajo programi na sodniku. Priporočamo, da preizkusite, ali se vaš program prevede s temi stikali, preden ga oddate na sodniški sistem.
  9. Če niste prepričani, ali program deluje dovolj hitro, lahko zgenerirate naključen testni primer, ki ustreza omejitvam vhodnih podatov iz besedila naloge in je "maksimalen" (tj. če piše, da ima graf N vozlišč, kjer je 2 <= N <= 10000, potem zgenerirajte naključen graf, ki ima N = 10000 vozlišč ipd.). Včasih je težko generirati testne primere, saj morajo le-ti imeti neke dodatne lastnosti, dostikrat pa ni posebej velik problem.

Veliko uspeha na tekmovanju!