Cytat(ziomek_1 @ 22.09.2015, 17:15:59 )

Witam,
Ten sposob nie zadziala.
Problem jest np. kiedy magazyn (4,6) a pudelko (3,2), tutaj w rzeczywistosci wejdzie tylko 3 pudelka, a jezeli liczyc po polu powiezchni wejdze 4
X X X E
X X X E
X X X E
X X X E
X X X E
X X X E
gdzie x to znaczy pudelka
E - zostaje wolne (zmarnowane)
Włożysz 4 pudełka jeśli je obrócisz. Pytanie jest czy możesz je obracać?
Cytat
Odpowiedzi zawsze bedą dwie w zależności jak ułożysz pudełka.
- mierzysz pierwszy bok magazynu(np szerokosc gdzie amsz 4)
- potem patrzysz ile pudełek zmiesci sie na w szerokosci(jezeli ulozysz bokiem o szerokosci 3) czyli wyszlo ci 1 pudełko
W tym momencie możesz sprawdzić gdzie reszta z dzielenia boku magazynu przez bok pudełka jest mniejsza, przed czy po obróceniu. Wtedy będzie to bardziej optymalny sposób.
Pseudokod:
Kod
resztaZDzielenia = pierwszyBokMagazynu % pierwszyBokPaczki
Jeśli resztaZDzielenia > pierwszyBokMagazynu % drugiBokPaczki
zamieńBokiPaczki
dzielenieCalkowitePierwszyBok = pierwszyBokMagazynu div pierwszyBokPaczki
dzielenieCalkowiteDrugiBok = drugiBokMagazynu div drugiBokPaczki
iloscPaczek = dzielenieCalkowitePierwszyBok * DzielenieCalkowiteDrugiBok
poleZajetePrzezPaczki = iloscPaczek * pierwszyBokPaczki * drugiBokPaczki
poleMagazynu = pierwszyBokMagazynu * drugiBokMagazynu
pozostaleMiejsce = poleMagazynu - poleZajetePrzezPaczki
Nie jestem specjalistą w pseudokodzie ale jak czegoś nie rozumiesz to pisz proszę.