[ Milos Stojanovic @ 05.04.2004. 23:32 ] @
U subotu je održano Republičko takmičenje iz informatike, i moram vam reći da se na njemu dogodilo nešto zaista sramotno.
Par dana pred takmičenje, svi su dobili zvanično obaveštenje da će source-kodovi koje takmičari budu predavali biti kompajlirani u
Borland Turbo Pascal 7.0 for DOS (ako takmičar radi u Pascalu) i
Borland C++ 3.1 for DOS (ako takmičar radi u C-u)
Lepo. Takmičenje je prošlo kako je prošlo. Ljudi su se dosta mučili sa nekim zadacima (ponajviše jer gore pomenuti kompajleri imaju ograničenje od 64KB za statičku memoriju), ali OK, to je ipak republičko. Danas smo pogledali rezultate i videli da takmičari iz Beograda generalno imaju dosta bolje rezultate od takmičara iz ostalih gradova (takmičenje je održano istovremeno u Beogradu, Novom Sadu, Nišu i Kragujevcu). Onda smo saznali da su source-kodovi takmičara koji su radili u Pascalu kompajlirani u Free Pascalu, a ne u TP7 kao što je najavljeno. Ovo je imalo za posledicu to da se moglo koristiti mnogo više od 64KB memorije (i preko 2 MB), ali za to niko nije znao, jer su svi očekivali (i radili za) TP7 kompajler. Svim osim takmičara iz Beograda, koji su neposredno pred takmičenje bili obavešteni o promeni kompajlera. Očigledno su oni tu promenu iskoristili najbolje moguće, za razliku od ostalih.

Voleo bih da čujem mišljenje vas ljudi o ovome. Šta mislite o ovakvom ophođenju prema jednom takmičenju? Mnogo veća takmičenja su poništavana i zbog manjih stvari, a kamoli zbog izmene pravila takmičenja u poslednjem minutu, i da još pri tom ne budu obavešteni svi takmičari. Ako mislite da je ova razlika između 2 kompajlera u količini memorije koju može da alocira beznačajna, grešite, jer je poenta jednog od zadataka baš bila da se optimizuje tako da "stane" u 64KB.

P.S. Molim bez flame-ova, ili onoga tipa "nije proš'o pa mu sad krivo" (a inače, najverovatnije jesam prošao). Mislim da je ovo dosta ozbiljna stvar.
P.P.S hvala na vremenu potrošenom da pročitate ovo :)
[ Ivan Dimkovic @ 05.04.2004. 23:44 ] @
Ako su samo Beogradjani saznali za ovu promenu, i imas dokaze za to - onda takmicenje treba ponoviti jer nije pravedno.

Dobro se secam TC 3.1 :))) I DOS memory modela na rep. takmicenjima...
[ -zombie- @ 06.04.2004. 01:57 ] @
nije to ništa novo.. još u "moje vreme" su "smicalice" beograđana bile česta pojava, naročito (ovo je verovatno već subjektivno, mada ne previše ;) prema nišlijama..

i možeš da se žališ do sutra, od toga ništa neće biti.. bgd lobi je vrlo jak, i ne popušta..
[ Ivan Dimkovic @ 06.04.2004. 07:48 ] @
Jeste subjektivno misljenje, posto sam i sam "u svoje vreme" bio na tim takmicenjima - nismo imali nikakvu prednost nad Nislijama... svasta.

thetrooper: kontaktiraj tvog profana informatike i zajedno napisite zalbu sa obrazlozenjem da se takmicenje ponovi - ako se pokaze da je beogradski kod "nastelovan" za veliko koriscenje memorije, sto se da lako proveriti kompajliranjem istog pod DOS alatkama, onda je stvarno neposteno.
[ Milos Stojanovic @ 06.04.2004. 16:24 ] @
pa razgovarao sam sa svojim profesorom, i on reče da će da razgovara sa njima. Čisto sumnjam da će bilo šta da se promeni... mislim da je ta komisija stvarno nedodirljiva. Tako je i na ostalim takmičenjima, a ne samo iz informatike.
[ Ivan Dimkovic @ 06.04.2004. 16:34 ] @
Onda napravite revoluciju - nek svi non-BG ucesnici bojkotuju takmicenje.
[ Ivan Tanasic @ 06.04.2004. 21:01 ] @
the trooper, zar ne mislis da si malo paranoican? :)

Salu na stranu, izjaviti da su beogradjani znali da ce biti zadatak koji guta dosta memorije pa su im dozvolili da koriste freepascal mi deluje malo... :) ne znam kako to da nazovem... :P

Salu na stranu, znam da su i ti famozni beogradjani imali dosta problema sa tim zadatkom i memorijom, al evo bas cu da pitam sutra druga koji je isao u cemu su smeli da rade zadatke, a ako ti nesto znaci licno cu da proverim da li na tim masinama ima gore pomenutog freepascala (posto je takmicenje odrzano u mojoj skoli pa imam pristup tim racunarima :)

[ Dusan Marjanovic @ 06.04.2004. 21:19 ] @
aj najbolje pročitaj još jednom šta je dečko napisao
[ Milos Stojanovic @ 06.04.2004. 22:15 ] @
Citat:
Ivan Tanasic:
Salu na stranu, izjaviti da su beogradjani znali da ce biti zadatak koji guta dosta memorije pa su im dozvolili da koriste freepascal mi deluje malo... :) ne znam kako to da nazovem... :P

Neću da zalazim u to ko je šta znao. Čak da Beograđani nisu znali da će biti korišćen FP (a *jesu* znali, potvđeno i od strane mog profesora, a bogami i od nekih takmičara iz Beograda), opet je zasigurno da su source-kodovi kompajlirani u Free Pascalu, i to je činjenica.

Sutra će inače biti ponovljeno neko testiranje, ali i dalje ne znam koje i šta će da promene. Ne verujem da će da istestiraju Pascal source-kodove sa TP7 (a što bi bilo najpravednije i jedino logično) jer bi tada Beograđani svi ostali bez minimum jednog celog zadatka (a možda i sva 3, u zavisnosti od toga kako su koristili promenljive).
[ RooTeR @ 06.04.2004. 23:43 ] @
Beogradjani koji su u prvih 20, manje vise svi imaju redne brojeve koji se razlikuju za 1, i svi su na cetvrtom dobili 100 bodova :). Neko voli da siri svoje ideje dalje :)
p.s. Subjektivno misljenje jednog asistenta, a sada i moje :)
Basicu, ajde se vise ukljuci u raspravu !!! :)
[ Bojan Basic @ 07.04.2004. 00:00 ] @
Dobro, Rajko, kad me već zoveš, mada sam mislio da sve što radim ne objavljujem ovde javno.

Dakle, protiv Beograđana nemam ništa, sa mnogima sam dobar prijatelj, i smatram da je za ovo kriva samo i isključivo organizacija. Ja preuzimam na sebe obavezu da već sutra privatno obavestim novosadsku (hint: novosadska je istovremeno i glavna) komisiju pošto privatno poznajem neke ljude odatle, pa ćemo videti šta će biti (mada ne mogu da verujem da ne znaju šta se dešava, ali dobro).

Toliko od mene.
[ Ivan Tanasic @ 07.04.2004. 21:25 ] @
Citat:
MAdafaKA:
aj najbolje pročitaj još jednom šta je dečko napisao



Procitao...
I sta sad? Sledim dalje instrukcije.
[ Bojan Basic @ 07.04.2004. 21:43 ] @
Pozdrav, evo mene opet sa zvaničnim informacijama.

Dakle, da li su Beograđani pisali svoj kod u FreePascal-u ili TurboPascal-u ne znam. Međutim, tebi niko ne brani da pišeš kod ni u notepad-u, ako ti tako više odgovara iz nekog razloga. S druge strane, razgovarao sam sa tipom koji je testirao programe kod svoje kuće (mislim na zvaničan test, onaj po kom su objavljeni reultati i sastavljena rang lista), saznao sam da je on sam kompajlirao source kodove u TurboPascal-u, tako da priča o FreePascal-u otpada, i ako su pisali programe u njemu kompajlirani su u TurboPascal-u, tako da je ipak sve regularno.

Možete reći da njemu ne treba verovati, ali uveren sam da me ne laže prvo zato što ga vrlo dobro poznajem, a drugo zbog toga što je i prošle godine bila neka frka sa takmičenjem (da ne širim sad celu priču, bilo pa prošlo i nije ni bitno), i kada se to čulo ponovljeno je testiranje u korigovanom obliku i greška je ispravljena, tako da ne znam zašto ne bi bilo tako i ove godine (kad bi greška postojala).
[ Milos Stojanovic @ 07.04.2004. 23:15 ] @
Citat:
Bojan Basic:
Međutim, tebi niko ne brani da pišeš kod ni u notepad-u, ako ti tako više odgovara iz nekog razloga.

Dobro, znaš da nisam mislio na to kada sam pomenuo različite editore/kompajlere, ne znam zašto to sad pominješ


Ako je sve kompajlirano u Paskalu, objasni mi kako onda zvanično rešenje 2. zadatka, koje je između ostalog korišćeno i kao benchmark za testiranje naših rešenja, izgleda ovako:
Code:

{$A+,B-,D+,E+,F-,G+,I+,L+,N+,O-,P-,Q+,R+,S+,T-,V+,X+,Y+}
{$M 65520,0,655360}

const
  fin = 'zad2.dat';
  fout = 'zad2.res';
  MaxN = 30000;

var
  n, res : Integer;
  demand : array[1..MaxN] of Integer;



  procedure ReadInput;
  var
    f : Text;
    i : Integer;
  begin
    assign(f, fin);
    reset(f);

    readln(f, n);
    for i := 1 to n do
      readln(f, demand[i]);

    close(f);
  end;


  procedure WriteOutput;
  var
    f : Text;
  begin
    assign(f, fout);
    rewrite(f);
    writeln(f, res);
    close(f);
  end;


  procedure Solve;
  var
    i, j : Integer;
    c : array[1..MaxN] of Integer;
  begin
    for i := 1 to n do
      c[i] := 0;

    for i := 1 to n do
      inc(c[demand[i]]);

    for i := 1 to n do
      if c[i] = 0 then
        c[i] := -1;

    res := n;
    for i := 1 to n do
      if c[i] = -1 then
      begin
        j := i;
        while c[j] <= 0 do
        begin
          dec(res);
          j := demand[j];
          dec(c[j]);
        end;
      end;
  end;



begin
  ReadInput;
  Solve;
  WriteOutput;
end.

ovde se jasno vidi da source koristi malo više od 2*(30,000 * 2) ~= 120KB memorije, što je mnogo iznad limita TP7.
[ srki @ 07.04.2004. 23:31 ] @
Citat:
-zombie-:
nije to ništa novo.. još u "moje vreme" su "smicalice" beograđana bile česta pojava, naročito (ovo je verovatno već subjektivno, mada ne previše


A u moje vreme je bilo obrnuto. A evo i zasto. U prvom razredu takmicenja je organizovao Jozef Kratica koji je davao dosta teske zadatke. (Desavalo se da niko ne uradi nijedan zadatak pa da daju poene na ideji :-) )
Ali od drugog ili treceg razreda organizaciju je preuzeo Milan Tuba koji se u isto vreme zalagao da se i u ostalim srednjim skolama (a ne samo u mg) uvede informatika sve 4 godine. E da bi popularisao tu ideju onda je na gradskim i republickim takmicenjima davao jako lake zadatke pa maltene svi imaju od 95-100 poena. Ali to nije odgovatalo Beogradjanima koji su uglavnom bili iz MG-a jer mozes slucajno da zaboravis neki slucaj (npr. deljenje sa nulom) i onda imas 95 poena i ne prodjes zbog toga iako ti je algoritam uredu i mozda bi uradio na saveznom bolje nego neko ko ne zna da napravi dobre algoritme ali je prosao zbog bas lakih zadataka. Znam da smo se mi na republickom takmicili ko ce prvi da zavrsi i napravi tetris jer .zadatke zavrsis za 45 minuta i posle imas vise od 3 sata slobodno.
Neki su pravili tetris u assembleru, neki plazmu itd...
[ Bojan Basic @ 07.04.2004. 23:32 ] @
Citat:
thetrooper:
Dobro, znaš da nisam mislio na to kada sam pomenuo različite editore/kompajlere, ne znam zašto to sad pominješ.

Znam da nisi na to mislio kad si pomenuo različite editore, objasniću ti zašto sam to pomenuo. Koliko vidim, nigde nisi pomenuo odakle ti znaš da su zadaci Beograđana kompajlirani u FreePascal-u. Pomislio sam da si čuo od nekoga odatle da su pisali u FreePascal-u, pa da si na osnovu toga pomislio da su zadaci u njemu i kompajlirani, pa se moja rečenica odnosila na to da nije bitno u čemu pišeš program nego samo u čemu kompajliraš, a napomenuo sam da source-ove nisu kompajlirali učenici već čovek iz komisije koji ih je testirao, i on mi je lično rekao da je za to koristio TurboPascal, objasnio sam malopre zašto ne mislim da laže. S druge strane, ako ti imaš pouzdane informacije da su njihovi zadaci i kompajlirani (a ne samo pisani) u FreePascal-u, reci odakle to znaš (ako nećeš ovde pošalji meni privatnom porukom), bez obzira što sam prilično loše prošao na tom takmičenju (drugi zadatak mi je pukao upravo zbog memorije, a četvrti zato što nisam hteo da koristim n2 algoritam koji sam video iz aviona, već sam to "optimizovao" na n algoritam - naravno pogrešan, sve zbog toga što sam se previše kurčio) nije mi mnogo stalo do mog prolaza već imam sasvim dovoljno mogućnosti da uradim nešto po tom pitanju ako su tvoje informacije pouzdane.

A što se tiče njihovog source koda, priznajem da ga nisam puno ni razgledao, ali reći ću to ovako: vrlo je moguće da ni oni ne znaju da napišu program koji će zadovoljavati granicu zadatka, ovaj program koji si ti napisao koriste za proveru naših rešenja, a veliku granicu su (možda) stavili zbog toga da bi videli kako se mi snalazimo ukoliko treba da se dovijamo na razne načine da bismo što više optimizovali program - nadam se da shvataš šta želim da kažem. Nigde ne piše da je zabranjeno davati otvorene ili nemoguće probleme, čak šta više prošle godine na saveznom mislim da su 5 zadataka od 6 bili nemogući što se tiče granice, pa je više bodova dobio onaj ko se bolje snašao.
[ Milos Stojanovic @ 07.04.2004. 23:54 ] @
Citat:
Bojan Basic:
S druge strane, ako ti imaš pouzdane informacije da su njihovi zadaci i kompajlirani (a ne samo pisani) u FreePascal-u, reci odakle to znaš (ako nećeš ovde pošalji meni privatnom porukom)

Niko ne može da ima pouzdane informacije osim samih članova komisije, ali ko što ranije rekoh, ovu informaciju sam dobio od mog profesora informatike, kasnije to isto čuo od takmičara iz Novog Sada, a potvrdio mi je i Aleksandar Ilić (ako znaš ko je to) koji je bio u Beogradu baš pre 2 dana.

A što se tiče nemogućih zadataka, mislim da nisi u pravu. Svaki zadatak bi morao da ima rešenje koje "radi" za sve primere koji mogu da odgovaraju postavci zadatka. Ja mogu da ti dam svoje rešenje za gornji zadatak koje koristi oko 60KB memorije.
[ Bojan Basic @ 08.04.2004. 00:10 ] @
Citat:
thetrooper:
Niko ne može da ima pouzdane informacije osim samih članova komisije

Pa ja sam ti dostavio informaciju od prvog čoveka komisije, koji je lično kompajlirao i testirao zadatke kod svoje kuće. Mislim da to jeste pouzdano. Izgleda mi da će ova priča na kraju ipak ostati samo naduvana dezinformacija (ne kažem ništa protiv tebe, ti si to čuo i sasvim je u redu što si pitao, ali evo sve polako dolazi na svoje mesto).
Citat:
thetrooper:
A što se tiče nemogućih zadataka, mislim da nisi u pravu. Svaki zadatak bi morao da ima rešenje koje "radi" za sve primere koji mogu da odgovaraju postavci zadatka. Ja mogu da ti dam svoje rešenje za gornji zadatak koje koristi oko 60KB memorije.

Ne znam zašto tako misliš, pa takmičari na tom takmičenju treba da pokažu sposobnost i da se snađu u situacijama kada "savršen" program ne postoji, već treba da napišu program koji će pokriti što više mogućnosti. Da se razumemo, nisam ja to rekao konkretno za drugi zadatak, ako ti imaš rešenje koje koristi samo 64kB memorije (a pritom radi u dozvoljenom vremenskom intervalu) ako ga objaviš ovde mnogima će koristiti, ja sam to za nemoguće zadatke spomeuo uopšteno jer je činjenica da se oni pojavljuju (i to dosta često), pa sam napomenuo da je možda i ovaj takav.
[ -zombie- @ 11.04.2004. 22:32 ] @
Citat:
srki:
Ali to nije odgovatalo Beogradjanima koji su uglavnom bili iz MG-a jer mozes slucajno da zaboravis neki slucaj (npr. deljenje sa nulom) i onda imas 95 poena i ne prodjes zbog toga iako ti je algoritam uredu i mozda bi uradio na saveznom bolje nego neko ko ne zna da napravi dobre algoritme ali je prosao zbog bas lakih zadataka.


znam da sam se i ja najviše nervirao zbog "glupih grešaka", ali ne kapiram rezonovanje da će na lakšem zadatku pre da pogreši bolji programer.. pa dobar programer mora biti i pedantan, i da pokrije sve spec slučaje..

ne možeš ti sutra reći gazdi/korisniku da program puca, ili ima curenje memorije, zato što je to bilo previše lako, i nije ti predstavljalo dovoljan izazov, pa se nisi dovoljno koncentrisao (nego si pravio tetris i plazmu u radno vreme ;).


drugo, nisam ni ja pričao za ove iz "običnih srednjih škola" već na MG iz bgd, i "specijalna" matematička odeljenja po srbiji (tj u moje vreme bilo valjda samo u nišu i NSu), po programu MG..

ali opet ne kapiram zašto su jedni bili u prednosti ako pravila igre bila ista za sve. ja pričam o smicalicama kada su pravila igre zaobilažena i kršena da bi se favorizovali beograđani. to je mnogo nepoštenije nego pravila koja više odgovaraju jednima a ne drugima (ali i dalje ravnopravno važe ista za sve)..
[ srki @ 12.04.2004. 04:42 ] @
Citat:
-zombie-:
znam da sam se i ja najviše nervirao zbog "glupih grešaka", ali ne kapiram rezonovanje da će na lakšem zadatku pre da pogreši bolji programer.. pa dobar programer mora biti i pedantan, i da pokrije sve spec slučaje..

Ma naravno, ali fora je sto na saveznom ipak daju zadatke na kojima mora da se razmislja (kao na olimpijadama) a ako na republickom daju zadatak:" imas 3 tacke, izracunaj povrsinu trougla" onda neko ko je zaista inteligentan ne prodje zbog sitne greske a neko drugi prodje koji posle ocajno uradi na saveznom jer ne zna da smisli neki komplikovaniji algoritam.

Citat:
ne možeš ti sutra reći gazdi/korisniku da program puca, ili ima curenje memorije, zato što je to bilo previše lako, i nije ti predstavljalo dovoljan izazov, pa se nisi dovoljno koncentrisao (nego si pravio tetris i plazmu u radno vreme ;).

Pa za to si u pravu, ali ovde u ovom slucaju nije bas bilo dobro jer svakom moze da se desi neka grescica ponekad. Dobro ja sam uvek imao maksimum poena do saveznog pa mi tetrisi nisu predstavljali problem :-)

Citat:
ali opet ne kapiram zašto su jedni bili u prednosti ako pravila igre bila ista za sve.
Pa dobro, nisu bas bili u prednosti ali mislim da tezina zadataka nije bas bila odgovarajuca. Za gradsko i republicko ne valja dati ni previse teske zadatke ni previse lake. Ako su previse teski onda prodje neko ko uopste nije pedantan ali se eto setio algoritma i uz gomilu gresaka prosao. Ali ako su previse laki onda prodje neko ko je samo pedantan ali ne ume da smisli neki komplikovaniji algoritam.

Citat:
ja pričam o smicalicama kada su pravila igre zaobilažena i kršena da bi se favorizovali beograđani. to je mnogo nepoštenije nego pravila koja više odgovaraju jednima a ne drugima (ali i dalje ravnopravno važe ista za sve)..


Pa ne znam sta da ti kazem osim da je to bezveze ako je bilo tako. Sramota!
[ Ivan Tanasic @ 12.04.2004. 23:54 ] @
Citat:
srki:


Citat:
ja pričam o smicalicama kada su pravila igre zaobilažena i kršena da bi se favorizovali beograđani. to je mnogo nepoštenije nego pravila koja više odgovaraju jednima a ne drugima (ali i dalje ravnopravno važe ista za sve)..


Pa ne znam sta da ti kazem osim da je to bezveze ako je bilo tako. Sramota!


Apsolutno! Al' izgleda se ispostavilo da nije bas bilo kako se na pocetku ovog thread-a govorilo...

Inace sto se tice memorije, receno im je koliko doticne smeju da koriste i bar ovi koje ja znam nisu znali nista o freepascalu i tome da bi zadatci bili kompajlirani eventualno na doticnom... Ono sto im je receno uz sve gore pomenuto jeste 'mali' hint (nezvanicno :P) a koliko ja vidim bas to je korisceno u primeru koji je trooper ovde postovao. Dakle ideja je u tome da procedura ima odvojen stack pa se jedan niz alocira u njoj a drugi u samom programu... Naravno, ne zelim da govorim napamet pa zato pitam da li je iko od vas propustio gore pomenuti source kroz turbo pascal?!



pozdrav i vise srece na saveznom, Ivan
[ Bojan Basic @ 13.04.2004. 00:14 ] @
Citat:
Ivan Tanasic:
Dakle ideja je u tome da procedura ima odvojen stack pa se jedan niz alocira u njoj a drugi u samom programu... Naravno, ne zelim da govorim napamet pa zato pitam da li je iko od vas propustio gore pomenuti source kroz turbo pascal?!

Nisam propustio taj kod kroz paskal jer me je mrzelo, ali koliko se sećam u matorim verzijama je svejedno da li se "prekomerni" niz nalazi alociran u glavnom programu ili u steku, s tim što bi u prvom slučaju prijavio "Structure too large" a u drugom "Stack overflow" i to tek kad uđe u proceduru. Znači, mislim da te matore verzije nisu imale razdvojenu memoriju za stek i za glavni program, jedino što znam da je posebno odvojeno je memorija za pokazivače. No, nisam siguran, tako da bi bilo bolje da me ispravi neko ko to sigurno zna.
Citat:
Ivan Tanasic:
a sad nek digne dva prsta razocarani takmicar koji je u cetvrtak zaboravio eksplozivnu napravu :P (da ne kazem bombu) na pragu voljene nam skole :P

Nisam ja, časna reč Sticajem okolnosti sam se tog dana našao baš u vašoj voljenoj vam školi, pa znam dobro o čemu se radi. Najbolja mi je tetkica:
Citat:
tetkica:
Vidim ja nešto veliko kod cveća, pa pogledam bolje kad ono bomba. Odem ja kod Joce a Joca kaže da idem kod direktora, pa odem ja i kod direktora i ispričam mu.

Kad si već to spomenuo morao sam da se nadovežem, nadam se da neće biti prevelikog skretanja sa teme zbog toga
[ Ivan Tanasic @ 13.04.2004. 10:10 ] @
Aca, ne Joca :P

I kad si bre stigo da me citiras?!?! Taj deo poruke je stajao tu nepunih 30sekundi i da ne bi bilo previse skretanja sa teme (a i zbog moje licne bezbednosti :P) sam ga uklonio... :)

Inace stvarno ne bi bilo lose da neko proba source koji je trooper ostavio na gore dosta pominjanoj verziji paskala...

P.S. Kljuicne reci drugog hinta ;) su bile: "odvojte prostor na heap-u"
[ Milos Stojanovic @ 15.04.2004. 01:53 ] @
Citat:
Ivan Tanasic:
P.S. Kljuicne reci drugog hinta ;) su bile: "odvojte prostor na heap-u"

yup, prolazi u TP7.0 onaj gore navedeni source. Tu ste u pravu. Ipak, još uvek nisam zadovoljan. Proveriću još jednom sve ljude od kojih sam čuo ovo (moji profesori i neki takmičari iz Novog Sada i BGDa)
[ Milos Stojanovic @ 19.04.2004. 18:30 ] @
Čisto da vas obavestim da je izvršeno korigovanje rezultata. Pristali su naravno na rešenje manje bolno za njih, tj. nama su povećali poene (umesto da sve kompajliraju u BP7 i BC3.1, kao što je bio dogovor). Šteta. Baš sam hteo da vidim sve Beograđane sa po 100 poena manje.