Hikaye
"2016? Al .. sağ," homurdandı oyuncak satıcısı Hilbert. Gözlerini açtı, kulağından sarkan salata sosu sildi ve bir sabah tekme cremeschnitte yedi. Örnek tatiller. Yine de işe gitmesi ve yılın muhasebesini bitirmesi gerekiyor.
Noel, özellikle satışları için yılın çok verimli bir dönemidir. Hilbert tam olarak nasıl çalıştığını biliyor: Bir kişi bir dükkana giriyor ve ilk teklif edilen hediyeyi alıyor. Bunun bedelini ödüyorlar ve başka bir dükkana koşuyorlar. Uygulamada, hediyenin gerçekte ne olduğu gerçekten bir fark yaratmaz. Çok yüksek olmaması koşuluyla fiyat da önemsizdir. Her şey Noel'e kadar kalan süreye bağlıdır - zaman ne kadar kısa olursa, müşterilerin pişmanlığı o kadar yüksek olur, ödemek istedikleri fiyat o kadar büyük olur.
Hilbert için tek gereken saatine bakmak - ve müşterilerinin ne kadar harcayacağını hemen biliyor. Bu gerçeği kolayca kullanabilir: Sadece belirli bir müşteriye satabileceği en pahalı hediyeyi bulur ve onlara sunar. Ancak şimdi bu kurnaz stratejiyi geçen yıl kullanmayı unuttuğunu fark etti. Bu değişecek!
Yine de, Hilbert büyük planını kullansaydı, işinin ne kadar gelişeceğini bilmek isterdi. Mağazasına gelen insanların bir listesini oluşturmayı başardı, ancak onlara ne kadar para kazanabileceğinden emin değil.
Göreviniz (TL; DR)
Girdi , mevcut hediye fiyatlarının artan bir listesinden ve müşteri bütçelerinin bir listesinden oluşur. Bütçe listesi, müşteriler mağazaya vardıkları sırayla aynıdır - her müşterinin en az bir öncekinden daha fazla ödeme yapmaya istekli olması şartıyla, aynı zamanda artan da demektir.
Her müşteri için, ödemek istedikleri en pahalı hediyeyi bulun ve fiyatını alın. Bütçe dahilinde hediye yoksa, çıktı a 0.
Eğer -40%algoritmanızın asimptotik zaman karmaşıklığı O(n+m)(önemsiz değil O(n*m)) ise, bir karakter bonusu alırsınız . Giriş listelerinin uzunlukları nerede n, m.
Bu kod golf , en kısa bayt kazanır. Standart boşluklar yasaktır.
Misal
Giriş:
1 2 2 2 5 7 10 20
1 1 2 3 6 6 15 21 21 22
Çıktı:
1 0 2 2 5 2 10 20 7 0
Bu görev yerel bir programlama yarışmasından alındı ve benim tarafımdan İngilizceye çevrildi. İşte orijinal ödev: https://www.ksp.sk/ulohy/zadania/1131/