← Back to topics
Topic

jagode

b
bojan
Da li je moguce da u test primerima ima slucajeva kada se plantaze preklapaju,tj. da dele istu povrsinu(znaci ne da se nalaze jedna iznad druge ili sl)?Zvuci mi glupo da dve plantaze mogu da dele istu povrsinu,ali mi program prolazi samo za prvih 5 primera,za ostalih pet daje pogresan rezultat.Ja sam pretpostavio da je nemoguce da plantaze dele povrsinu,tako da sam zanemario y koordinatu za svaku plantazu ponaosob.
r
rajkon
U pravu si, nemoguce je da dve plantaze dele istu povrsinu ...
b
bojan
Ok.Da li onda znaci da mi je u algoritmu koji deli plantaze na skup intervala koji se medjusobno ne seku po x osi?

(x je x pozicija plantaze,w-sirina, a h -visina)
l.clear();
l.push_back(make(p[n - 1]));
for (i = n - 2; i >=0 ; --i){
it = l.begin();
tmp = p[ i ].x + p[ i ].w;
if ( tmp < (*it)->x){ //da li je kraj i-tog pre pocetka prvog u listi
l.push_front(make(p[ i ]));
}
else{
if (p[ i ].x < (*it)->x)
l.push_front(make(p[ i ].x , (*it)->x - p[ i ].x - TOL, p[ i ].h));
while (it != l.end() && tmp >= (*it)->x + (*it)->w){
t = *it;
t->h += p[i].h;
it++;
}
if (it == l.end()){
if (t->x + t->w < tmp)
l.push_back(make(t->x + t->w + TOL, tmp - (t->x + t->w + TOL) ,
p[i].h));
}
else if (tmp > (*it)->x){
(*it)->h += p[i].h;
(*it)->w = tmp - (*it)->x;
l.insert(it,make( tmp + TOL , ((*it)->x + (*it)->w) - (tmp + TOL) ,
(*it)->h));
}
}
}

Ako ti je komplikovano da gledas moj kod,da li mozes da mi predlozis tvoje resenje?
b
bojan
Ajde ljudi neku ideju,ja stvarno nemam predstavu kako bih drugacije podelio plantaze na povsine koje se ne seku po x-osi....
r
renovator
Pa radi ovako..Povecavas povrsinu iznad svake kockice na x-osi ...Znaci
kad ucitas plantazu 3x3... ides od leve x do desne x koordinate i povecavas svaki
element niza za visinu, u ovom slucaju +3..posle samo trazis kockicu u kojoj se nala zi 1/3 i 2/3 ...
b
bojan
Ne razumem kako govoris o kockicama kada su koordinate i duzina stranice realni brojevi?Ajde mi pojasni to malo
r
renovator
ne, nisu realni brojevi vec celi..
r
renovator
tako samo pise u zadatku...Ja sam uradio zadatak i ne znam kako nisam obratio paznju na to.Prosao je, a racunao sam koordinate kao cele brojeve.
b
bojan
A u bre,ondk ce biti da je to veliki propust u postavci zadatka,jer se cela stvar mnogo pojednostavljuje ako su u pitanju celi brojevi...Trebao bi onda administartor da obrati paznju na tekst zadatka...U svakom slucaju,hvala ti