Historia
„2016? W porządku…” - narzekał sprzedawca zabawek Hilbert. Otworzył oczy, wytarł z ucha ściekający sos sałatkowy i zjadł cremeschnitte rano. Przykładowe wakacje. Teraz jednak musi iść do pracy i dokończyć księgowość roku.
Boże Narodzenie to bardzo owocny okres roku, szczególnie ze względu na sprzedaż. Hilbert wie dokładnie, jak to działa: osoba wchodzi do sklepu i kupuje jej pierwszy prezent. Płacą za to i uciekają do innego sklepu. W praktyce to, czym tak naprawdę jest prezent, tak naprawdę nie robi różnicy. Cena jest również nieistotna, pod warunkiem że nie jest zbyt wysoka. Wszystko zależy od czasu pozostałego do Bożego Narodzenia - im krótszy czas, tym większe wyrzuty sumienia klientów, tym wyższa cena, jaką są skłonni zapłacić.
Wystarczy spojrzeć na zegarek - Hilbert i od razu wie, ile mogą wydać jego klienci. Może z łatwością skorzystać z tego faktu: po prostu znajduje najdroższy prezent, który może sprzedać danemu klientowi i mu go zaoferować. Dopiero teraz zdał sobie sprawę, że w ubiegłym roku zapomniał zastosować tę przebiegłą strategię. To się jednak zmieni!
Niemniej jednak Hilbert chciałby wiedzieć, jak bardzo rozkwitłby jego interes, gdyby rzeczywiście wykorzystał swój wielki plan. Udało mu się zebrać listę osób, które przyszły do jego sklepu, jednak nie jest pewien, ile pieniędzy mógł na nich zarobić.
Twoje zadanie (TL; DR)
Wejście składa się z rosnąco listę cen dostępnych prezentów oraz listę budżetów klientów. Lista budżetów jest w tej samej kolejności, w jakiej klienci przybyli do sklepu - pod warunkiem, że każdy klient jest skłonny zapłacić co najmniej tyle, co poprzedni, co oznacza, że również rośnie.
Dla każdego klienta znajdź najdroższy prezent, za który jest gotów zapłacić, i wydrukuj jego cenę. Jeśli żadne prezenty w ramach budżetu nie są dostępne, należy wyprowadzić wynik 0.
Otrzymasz -40%premię dla postaci, jeśli asymptotyczna złożoność czasowa twojego algorytmu jest O(n+m)(a nie trywialna O(n*m)) Gdzie n, msą długości list wejściowych.
To jest golf golfowy , wygrywa najkrótsza bajt. Standardowe luki są zabronione.
Przykład
Wejście:
1 2 2 2 5 7 10 20
1 1 2 3 6 6 15 21 21 22
Wynik:
1 0 2 2 5 2 10 20 7 0
To zadanie zostało wzięte z lokalnego konkursu programistycznego i przetłumaczone przeze mnie na język angielski. Oto oryginalne zadanie: https://www.ksp.sk/ulohy/zadania/1131/