To był ciepły letni wieczór ...
kiedy mój głupi samochód postanowił zepsuć się na środku drogi w drodze powrotnej z supermarketu. Zepchnąłem go na bok i postanowiłem iść do domu. Otworzyłem bagażnik, żeby wyjąć sklep spożywczy i pozostałe rzeczy. Wtedy zauważyłem, że przedmioty nie były równomiernie zapakowane. Niektóre torby miały więcej ciężkich przedmiotów, podczas gdy inne miały kilka lżejszych rzeczy - niektóre miały nawet mieszankę takich przedmiotów. Aby ułatwić mi noszenie, postanowiłem pogrupować wszystko w dwie torby i ustawić ich ciężary jak najbliżej siebie.
Twój cel
jest pomoc w przestawieniu przedmiotów na dwie torby na zakupy w taki sposób, aby różnica między obiema torbami była możliwie bliska zeru.
Matematycznie:
WAGA LEWA RĘKA - WAGA PRAWA RĘKA ≈ 0
Przykład
Gdybym miał tylko 2 przedmioty, Chleb i Masło Orzechowe, a waga Chleba to 250 gramów, a masło orzechowe to 150 gramów, najlepszym sposobem jest noszenie ich osobno w dwóch rękach.
W LH - W RH = W (CHLEB) - W (MASŁO) 250-150
= 100
Inną możliwością jest:
W (CHLEB, P. MASŁO) - W (pusta ręka) = (250 + 150) - 0 = 400
To nie jest lepsze niż nasz pierwszy przypadek, więc powinieneś iść z pierwszym.
Twój kod powinien
- wprowadź liczby wskazujące wagę przedmiotów w torbie na zakupy. Jednostki nie są ważne, ale powinny być takie same (najlepiej kilogramy lub gramy). Dane wejściowe można wprowadzać pojedynczo lub wszystkie jednocześnie. Jeśli chcesz, możesz ograniczyć całkowitą liczbę do 20 przedmiotów.
- Format / typ wejściowy zależy od ciebie, ale nic innego nie powinno być obecne poza wagami.
- Dowolny język jest dozwolony, ale trzymaj się standardowych bibliotek.
- Wyświetl dane wyjściowe. Ponownie możesz wybrać format, ale wyjaśnij format w swoim poście. tzn. w jaki sposób możemy stwierdzić, które z nich są lewymi, a które prawymi.
Zwrotnica
- Najkrótszy kod wygrywa.
Wskazówka
Dwa możliwe algorytmy, o których mogłem myśleć, to różnicowanie (szybsze) i permutacje / kombinacje (wolniejsze). Możesz użyć tych lub innych algorytmów, które wykonują zadanie.