[ Divjak @ 16.04.2005. 17:32 ] @
Radi se o zadatku za takmicinje, i radi sasvim lepo za manju kolicinu teksta, ali za najkomplikovaniji primer (od 50 000) redova, ne ispise nista...
zasto?
Da li postoji neko ogranicenje?
[ Toyo @ 16.04.2005. 17:36 ] @
Postuj kod gde mislis da je problem. Ili ceo, ako nije dugacak.
[ Divjak @ 16.04.2005. 17:39 ] @
Code:

PROGRAM BICIKLISTI;

VAR
        POZ     :array[1..10000] of integer;
        TAK     :array[1..10000] of integer;
        BRT     :integer;
        BRP     :longint;
        SWAP,P,i:integer;

        PROCEDURE MAIN;

        VAR
                fi      :text;
                fo      :text;
                PROCEDURE SETUP;
                BEGIN
                  for i:=1 to BRT do begin
                  POZ[i]:=i;
                  TAK[i]:=i;
                end;
                END;
        BEGIN
                assign(fi,'biciklisti.dat');
                reset(fi);
                read(fi,BRT);
                readln(fi,BRP);
                SETUP;
                for i:=1 to BRP do begin
                        readln(fi,P);
                        SWAP:=TAK[POZ[P]-1];
                        TAK[POZ[P]-1]:=P;
                        TAK[POZ[P]]:=SWAP;
                        dec(POZ[P]);
                        inc(POZ[POZ[P]]);
                end;
                close(fi);
                assign(fo,'biciklisti.res');
                rewrite(fo);
                for i:=1 to BRP+1 do writeln(fo,TAK[i]);
                close(fo);

        END;
BEGIN
MAIN;
END.
[ Toyo @ 16.04.2005. 17:43 ] @
Pogledaj na koliko su ti dimenzionisani nizovi. (Ovo ce da ti radi samo do 10000)
[ Divjak @ 16.04.2005. 17:58 ] @
da, da imam obicaj da izmesam promenljive...
hvala...
[ Toyo @ 16.04.2005. 18:01 ] @
Pa neces moci da ga dimenzionises na 50000. Suvise je to lako da bi proso kao zadatak za takmicenje. Ako nije problem daj zadatak da i mi vidimo.
[ _v!rus_ @ 16.04.2005. 18:33 ] @
Ili optimizuj kod, da radi sa jednom matricom, ili koristi heap, tj. dinamicko alociranje. I jos nesto, ako su ti u matrici snimljene pozicije biciklista, integer won't do sa 50K takimcara (u obicnom paskalu) - 32767. Ako su ti oni zadali res fajl, proveri da li je bas Integer, cisto sumnjam ako je takmicara 50K. Unsigned mozda?
[ _v!rus_ @ 16.04.2005. 19:10 ] @
Ako neces heap i dinamicku alokaciju, mozda bi mogao bi i da koristis sekvencijalnu obradu, ako je moguce u tvom slucaju(ne znam zadatak). Sistem bi bio da deo po deo obradjujes podatke i upisujes u fajl (npr. 10K po 10K).
[ broker @ 16.04.2005. 21:21 ] @
Savet: izbegavaj globalne promenljive osim kada imaju smisla, to jest kada se korisite kao globalni parametri i evenutlano ako su parametri koji seprenose izmedju razlicitih unita.

I uvek inicijalizuj promenljive.

[ Divjak @ 16.04.2005. 23:05 ] @
Ima 10 000 takmicara, 50 000 instrukcija, nije htelo da radi jer sam imao gresku u kodu...
Sad sasvim lepo radi...

hvala svima...