У Алисы есть родственники N. Она будет говорить с соответствующим родственником точно за T [i] минуты. Каждая минута стоит 1 доллар. Тем не менее, ее родственники после разговора добавили пополнения X [i] долларов в свой мобильный телефон. Первоначально у нее есть баланс в долларах США на мобильном телефоне.Найти минимальный баланс на мобильном телефоне
Нам нужно найти минимальное значение M, которое она должна иметь на своем телефоне, чтобы она не выходила из равновесия во время любого вызова (встречный отрицательный баланс).
Примечание: Алиса может позвонить родственникам в любом порядке. Каждый родственник будет называться ровно один раз.
Пример: Пусть N = 2 и пара T [I] Х [I] для каждого из двух относительно выглядит следующим образом:
1 1
2 1
Тогда здесь ответ будет 2.
В настоящее время 1 ≤ N, X, T ≤ 10^5. Так что лучший способ найти минимальное значение решения M. Brute не получится, поэтому мне нужен подход O (N) или O (N * logN)
[. Пожалуйста, прочитайте этот пост, прежде чем писать больше кода в будущем] (HTTP://codeblog.jonskeet.uk/2014/06/03/anti-pattern-parallel-collections /) – Aron
Это выглядит как домашнее задание, поэтому вместо полного решения вот подсказка: обратите внимание, что если вы берете любые два соседних вызова и свопите их заказ, общая сумма оставшийся в конце кредит остается неизменным, но самый низкий размер кредита после первого звонка может измениться - поэтому один из этих заказов всегда будет лучше. Как решить, что? –
@j_random_hacker u может изменить порядок ввода .. U не может поменяться .. –