rMolim nekog da me uputi na greske .Svi primeri koje sam izmislio prolaze ali mi zato ne prolaze 4-10 primeri.Verujem da je neka sitnica.
Evo koda i trudio sam se da bude uredan :
http://rapidshare.de/files/8629625/edit.pas.html
bOvaj kod je mnogo bolji za razliku od prethodnog.
Pogledao sam kod i deluje ok, mada ne znam bas najbolje funkcije sa stringovima. Ono sto je mene malo zezalo, jeste sto nisam pazio kad se nalazim na pocetku ili kraju. Mozda je i kod tebe nesto slicno. Tipa kad imas prazan string...
Trazi od Admina test primer jedan, pa provali gde puca.
Pozdrav,
pString moze da ima najvise 255 karaktera a "maksimalna duljina teksta ce biti 100,000 znakova." tako da tebi program radi ako je duzina texta <=255.
Tako da probaj da izbegnes stringove :)!
sJel bi to lepo radilo s AnsiStringovima?
bJa sam radio preko pokazivaca, a neki su radili preko niza char od 100000 elemenata. Ti izaberi kako hoces!
pMislim da kod AnsiStringova ne rade lepo procedure insert,delete.......
Najbolje je da se radi preko niza charova ili ovako kao sto je Boba radio!
rAli ja sam pokusavao da dodelim promenljivoj tipa string nizove od 100000 znakova i da vrsim operacije nad njima i uspevalo mi je i bilo mi je cudno jer sam pre toga cita da string podrzava 255 ali probacu kako ste mi vi rekli.
Hvala svima
rE ljudi , opet se javljam jer ga jos nisam resio.Problem mi predstavlja to sto ne znam kako da realizujem da moze da se ucita vise od 256 znakova u komandnoj liniji.Moze li pomoc .Kako da ucitam niz od 100000 elemenata(tipa Char)?
dNe muci se sa tim charovi, najbolje (i najintuitivno) ti je da koristis double
linked list.
rOK , samo malo da je proanaliziram.Jos uvek sam taz u ovom 'svetu' algoritama.
bMalo kasno se javljam, ali pretpostavljam da znas da je Dimitar mislio na dvostruko povezanu listu, znaci da koristis pokazivace i mislim da je to i najlakse za shvatiti, a radi brzo!
rOk sad znam sta su te liste , nego i dalje ne mogu da provalim kako da u consolu ucitam vise od 256 znakova.Kada unosim znakovni niz pokazivac se zaustavi na 256-om znaku.Radim u Delphi Pascalu ,mozda je do toga ??
bEvo saljem ti moj kod koji cita, pa provali.
Ti treba da citas karakter po karakter.
type
List=^TList;
Tlist=record
next,prev:List;
c:char;
end;
var
L:List;
procedure Insert(c:char;var L:List);
var
tmp:List;
begin
if L=Nil then
begin
New(L);
L^.next:=Nil;
L^.prev:=Nil;
L^.c:=c
end
else
begin
tmp:=L^.next;
New(L^.next);
L^.next^.next:=tmp;
L^.next^.prev:=L;
L^.next^.c:=c;
if tmp<>Nil then
tmp^.prev:=L^.next
end;
if L^.next<>Nil then
L:=L^.next
end;
procedure InsertAtEnd(c:char;var L:List);
begin
if L=Nil then
begin
new(L);
L^.next:=Nil;
L^.prev:=Nil;
L^.c:=c
end
else
begin
while L^.next<>Nil do
L:=L^.next;
new(L^.next);
L^.next^.prev:=L;
L^.next^.next:=Nil;
L^.next^.c:=c
end
end;
procedure InsertAtStart(c:char;var L:List);
var
p:List;
begin
new(p);
p^.c:=c;
p^.next:=L;
if L<>Nil then
L^.prev:=p;
p^.prev:=Nil;
L:=p
end;
L:=Nil;
read(c);
while (c>='a') and (c<='z') do
begin
InsertAtEnd(c,L);
read(c)
end;
Ovo ti je najveci deo, ostao je jos samo deo koji prolazi kroz komande, nadam se da ce ti ovo bar malo pomoci.
P.S. Admin jel' mozes da stavis code tagove?
bNema na cemu!
Ako budes hteo, mogu ti poslati ceo kod.
rhvala na ponudi , ali gledam da sto vise radim sam , jedino ako se bas budem mucio (ali ne verujem da ce tako biti) reci cu ti.
Poz.
dMnogo je lakse da se ovaj zadatak uraditi u C++, sa
koristenje na STL kontejneri list ili vector. Sve te
operacije insert, delete itd. su implementirani, tako
da nema potreba od zajebavanje sa pokazivaci.
bPogledao sam i vidim da nisi resio. Sta te sada pati?
rOstavio sam ovaj zadatak,kao i sve ostale ,da ga uradim kad jos malo savladam C++.Za sad znam ono sto mi je ostalo iz PHP-a.Samo jos malo i uradicu ga.A sto se tice toga da li sam razumeo zad.Naravno da jesam , nije mi problem.
r I , hvala sto brines o meni :).Posto se spremam za svoje prvo takmicenje iz prog. imam jaku volju da uradim vecinu zad. sa z-t(ali u C++-u).
Jos jednom hvala.
dJa sam uradio sa vektor, ali palo je na vreme, mislim da je to zasto ubacivanja elementa u vektoru znaci da neke mora da se pomere za jednu poziciju unazad, a to je sporo u ovom slucaju. Probaco za linked list-on, ali i za to ni sam bas optimist.
bVektori su inace sporiji zbog nacina na koji se "prosiruju" i "smanjuju", a samim tim i indexiraju polja. Nisam shvatio jel' ovde ima nekih pitanja ili samo komentarises tvoje resenje...?
dPa..pitanje je dali sa list bece brze i prodje ili uooste da ne probuvam? :)
bBice brze (naravno, ako ih uzasno lose implementiras nece, ali verujem da mogu da izuzmem to) za to sto ti treba za taj zad.
iI da, zaboravih da kazem: bilo bi super kada bi, uz vasu pomoc, uspeo da prepravim ovo resenje da radi, ali isto tako bih voleo da mi resenje posalje neko ko je uradio zadatak na isti nacin (Double Linked List) ili koristeci STL <list>.
Hvala unapred.
iVidim niko nema zivaca da pregleda kod (ne osudjujem vas, ni ja ne bih imao da sam na vasem mestu). Hoce li makar neko da mi posalje bilo koji od test primera na PV ili mail? Mozda 5. ili 6. primer...
Stvarno mi nije jasno, na mom racunaru svaki primjer prolazi.
bJa sam hteo da ti posaljem test primer, ali kada sam video koliki je, odustao sam, a ne mogu da nadjem kod PM da shaljem attach.
iHvala! Uradio sam sa STL list<T>, ako nekoga interesuje. Procitao par clanaka sa TopCoder-a, i bacio se na posao. Rezultat je, naravno, dosao sam po sebi! ;D
tJel moze neko da mi da ucitavanje sa C++ za ovaj zad, daje mi pogresno na sve iako sam rucno testirao za par komada sa tp sa hsina i radi...
ANemogu se trenutno u tvom kodu bas snaci.
Ali evo ti tip: pazi dai ucitas novi red i prazan char.
theh xD ma citam, nego znam da je i pre bila caka ako je scanf oce, a ako je gethcar da nece, il obrnuto, nisam siguran :P
vNe razumem prvi test primer...
abcd
3
P x
L
P y
___________
Zar ne bi rezultat trebao biti abcydx ?
Ja ovako razumem
tacka je kursor
1) abcd.
2) abcd.x
3)abc.dx
4)abc.ydx
t@vasja: nakon sto dodas slovo, cursor bude iza tog dodanog slova.
1) abcd.
2) abcdx.
3) abcd.x
4) abcdyx
Inace, ja sam koristio dva stacka; znakovi lijevo i desno od kursora.
vEvo i ja sam uradio sa 2 stacka i sad prolazi na primere iz zadatka i na sve moje primere ali kada posaljem 7 pogresan rezultat i 3 time limit exceded.
Ako moze neko da pogleda... Stvarno me nervira ovaj zadatak:D
thttp://pastebin.com/m59ff2e89
;)
vOk greska u ucitavanju...
Ali jos uvek padam na zadnja 3 primer zbog vremena.
Kako si ti radio sa stackom?
vE ovo ne mogu da razumem...
Evo uradio sam i sa stl list i opet ne prolaze poslednja 3 primera na vremenu :(
tZnam sto je.
strlen() ti nije bas najbrza funkcija :) Ako ju stavis kao uvjet u for petlji, bit ce pozivana nakon svakog povcanja brojaca. ;)
tEdit:
Popravi to tako da izvan for petlje stavi:
int a = strlen( niza );
i onda u for petlji promjeni uvjet u:
i < a
vE ovo nisam znao ... Hvala ti :D proslo je dosta brzo :D
hahahah
Vasja 1: prokleti zadatak 0
hahahahah