Проблема, пов'язана з маркетингом на багаторівневому рівні.
Ровесник хоче отримати нагороду. Тож це залучало Nінвесторів ( N>=1), кожен i-й інвестор інвестував x[i]. Коли загальна сума перевищує поріг, x[0]+x[1]+...+x[N-1] >= Tрівний може бути винагороджений. Але лише за умови виконання наступних умов:
- Мінімальна сума інвесторів повинна бути більшою, ніж
M(M<=N) - Принаймні одне ціле число
k, кудиk>=Mіk<=Nбудь-якийkінвестор повинен інвестувати хоча бT/kкожне;
Враховуючи N, x[], T, M, слід визначити, генерується чи ні нагорода однолітка (бульний результат, "так" чи "ні"). Найкоротший код виграє.
Приклади:
N=5; M=3; T=10000, щоб отримати нагороду однолітків, необхідно виконати одне з наступних:
- будь-які 3 інвестували щонайменше 3334
- будь-які 4 інвестували щонайменше 2500 кожен
- всі 5 вклали принаймні 2000 кожен
N=6; M=2; T=5000:
- будь-які 2 інвестували щонайменше 2500 кожен
- будь-які 3 інвестували щонайменше 1667
- будь-які 4 вклали принаймні 1250 кожен
- будь-які 5 вклали принаймні 1000 кожен
- всі 6 інвестували щонайменше 834 кожен
узагальнено: для будь-якого k, де k>=Mі k<=N:
- будь-який
kзNінвесторів вклав , по крайней мереT/kкожен
Тестові приклади:
формат:
N, x[], T, M -> correct answer
6, [999, 999, 59, 0, 0, 0], 180, 3 -> 0
6, [0, 60, 0, 60, 60, 0], 180, 3 -> 1
6, [179, 89, 59, 44, 35, 29], 180, 3 -> 0
6, [179, 89, 59, 44, 35, 30], 180, 3 -> 1
6, [179, 89, 59, 44, 36, 29], 180, 3 -> 1
6, [179, 90, 59, 44, 35, 29], 180, 3 -> 0
6, [30, 30, 30, 30, 29, 30], 180, 3 -> 0
6, [30, 30, 30, 30, 30, 30], 180, 3 -> 1
trueі значення false?
len(x)буде коротше, ніж письмовеN. Це зроблено, оскільки для динамічно розподіленого масивуxв C немає прямоїlen(x)функції - тому ви завжди можете посилатися на довжину якN. Для зручності ви можете розглядати всі вхідні даніN, x[], T, Mяк зовнішні визначені константи або деякі вбудовані мови.