← Back to topics
Topic

babuske

n
nemanja90
Ja ne verujem da sam tolika budala. Pa za se ceo zadatak ne svodi na to da izmnozim sve mogucnosti za svaku od lutaka koje se ne vide, tj. ako medju lutkama koje se vide ima 5 koje su vece od lutke i onda je a[i]:=5... rez je for i:=1 to n do p:=p*a[i], jel moguce da u tako prostom kodu opet imam brdo gresaka? Da li je moguce da toliko gresim i na najprostijim stvarima a da nikako ne mogu da uocim mesto gde bih mogao da napravim tu gresku????
k
kfrane
Ovdje trebas napraviti mnozenje bignumova sa intovima jer kada puno puta mnozis rezultat ispadne jako velik broj.
n
nemanja90
pa stavio sam longint.
s
sanja
treba ti nesto vece od longint, rad sa brojevima koji imaju mnogo vise cifara :) Mislim da je vec bilo nesto oko toga na forumu. Tu se broj pamti kao niz pa onda za to pises posebne funkcije za sabiranje, oduzimanje i sta vec treba :)
n
nemanja90
Ako moze neko da mi da neki test primer a da nisu primeri 1,5 ili 6(bilo koji drugi), bio bih mu zahvalan.
b
boba5551
pa jesi li sredio velike brojeve, odnosno jesi li njih implementirao. Ako nisi, ne vrede ti test primeri.
Evo ti nekoliko koje sam ja na svom programu pustio

20 15
20 19 18 17 16 15 14 13 12 11 10 9 8 7 6
resenje: 759375

50 35
sve babuske od 50-16, znaci njih 35
resenje: 144884079282928466796875
n
nemanja90
Nasao sam gresku, prekidao mi je niz znakova tamo gde se pojavi prva nula, nezavisno od tog da li iza nje ima cifara vecih od 0. Hvala na primerima, mnogo su mi pomogli. Evo, resili smo i babuske.
i
iggy91
Hm... Nisu svi.

Nije mi jasna tvrdnja iz prve poruke u ovoj temi:
"...samo izmnozim sve mogucnosti za svaku od lutaka koje se ne vide..."

Moze li neko da objasni sta se konkretno treba uraditi?
b
boba5551
Ako imas babuske
1 2 3 4 5 ... idx-1 idx+1 ... n
koje su vidljive. Na koliko nacina mozes da rasporedis babusku sa indexom idx?
n
nemanja90
[quote author=Igor Peric link=topic=10384.msg12613#msg12613 date=1201993164]
Hm... Nisu svi.

Nije mi jasna tvrdnja iz prve poruke u ovoj temi:
"...samo izmnozim sve mogucnosti za svaku od lutaka koje se ne vide..."

Moze li neko da objasni sta se konkretno treba uraditi?
[/q]

Pa uzmi onaj primer sto ti je dat uz zadatak i probaj da razmislis zasto ima toliko mogucnosti.
i
iggy91
Hvala puno i Slobodanu i Nemanji, shvatio sam zadatak.

Implementirao sam i velike brojeve, ali mi pada samo na 7 test primeru. Pretpostavljam da je to neki specijalni slucaj na koji nisam obratio paznju.

Moze li neko da posalje na PV ili na mail ako je veliki primjer?
zmaj.org@gmail.com
b
boba5551
Pa jedini specijalan slucaj, bar koji se moze tako nazvati je da na izlazu treba da bude samo nula, ali i to je mozda.

Nego, evo ti jedan
40 30
40 39 38 ... 11, znaci sve babuske od 40-11
Koje ti je resenje? Cak ti je prilicno lako rucno da izracunas resenje za taj test primer.
i
iggy91
Program izbacuje 590490000000000 kao resenje.

A na izlazu ce biti nula samo kada je M=0, zar ne? Ako jeste, i na to sam mislio ali ipak ne radi.

Jel tacan ovaj rezultat?
n
nemanja90
Trebalo bi da je toliko jer je to u stvari 30^10.

Mislim da m ne moze da bude 0 i da je to dato u postavci zadatka, to bi bilo kao i kad se ne bi videla najveca babuska.

I kad se vide sve lutke, opet resenje nije 0 nego 1 jer postoji tacno 1 kombinacija a to je da sve lutke ostanu vidljive.

Ne pada mi na pamet ni jedan specijalan slucaj.
b
boba5551
[quote author=Igor Peric link=topic=10384.msg12618#msg12618 date=1202055972]
Program izbacuje 590490000000000 kao resenje.

A na izlazu ce biti nula samo kada je M=0, zar ne? Ako jeste, i na to sam mislio ali ipak ne radi.

Jel tacan ovaj rezultat?
[/q]
Da, to je tacno. 7. test primer je sa puno nula na kraju. Koje resenje dobijas za 100 30 i sve babuske od 71-100. Resenje je
25031555049932416013155719860858490000000000000000000000000000000000000000000000
000000000000000000000000

A sto se tice resenja 0
10 2
1 2
i
iggy91
Sto se tice 0 za resenje... Znaci, kada mi je poslednja babuska nevidljiva (tako zadat ulaz) resenje mi je automatski 0? Jer ako u ulazu nije navedena poslednja (najveca) babuska, ona se ne moze staviti ni u jednu jer su sve druge manje od nje, a samim tim ona mora ostati vidljiva, sto nije dozvoljeno ulazom. Resenje 0.

A ovaj primer sto si dao ne radi, ispisuje tacan broj nula, ali na pocetku ispisuje i neke negativne brojeve. Kada sam prepravio da radim sa vector<long long> umesto vector<long> ispisuje pozitivne brojeve ali je i dalje rezultat netacan. Sad mi je jasno da je overflow nastao negde u funkciji za mnozenje BugNum-a sa long-om, ali ne znam gde.

Idem da trazim...

Hvala Slobodane! ;)
i
iggy91
Uradio sam.

Greska je bilo u tome sto sam u funkciji za mnozenje ostatak (prenos) kod mnozenja dodavao kao citav broj na pocetak niza, nisam ga rastavljao na cifre. Tu je doslo do problema.

Hvala jos jednom.
b
boba5551
[quote author=Igor Peric link=topic=10384.msg12621#msg12621 date=1202068645]
Sto se tice 0 za resenje... Znaci, kada mi je poslednja babuska nevidljiva (tako zadat ulaz) resenje mi je automatski 0?
[/q]
Da.
n
nemanja90
Ja mislim da to sto se tice 0 kao resenja nije tacno, to je kao deljenje sa nulom. Ali nije ni bitno jer pise u postavci zadatka da je 1<=m<=n
b
boba5551
Ne znam sa kim se nisi slozio to sa nulom, ali ako imas najvecu babusku koja treba da se smesti u neku od ostalih, onda ti je to nemoguce, pa je logicno da resenje bude 0.
n
nemanja90
Nema resenja nije isto sto i nula osim ukoliko u zadatku ne kazu da ispises nulu ako nema resenja. Svejedno, nebitno je za ovaj zadatak jer takav slucaj nece dati u primeru.