Skip to content

Latest commit

 

History

History
59 lines (35 loc) · 2.95 KB

File metadata and controls

59 lines (35 loc) · 2.95 KB

Task 1. Обработка на заявки (Medium)

HackerRank link

Statement:

Напишете програма, която обработва множество от заявки и накрая извежда минимално и максимално време, за което е била обработена заявка.

Заявките идват всяка секунда последователно във времето (време 0, 1, 2, 3 и т.н.), като тяхната обработка зависи от това колко е времето за изчакване на заявката, като заявка с по-малко време се предпочита за обработка.

Пример:

Последователно пристигат заявки с време за изчакване: 3, 2, 1, 4. Първо се започва обработката на първата заявка с време за изчакване 3 (започвайки от време 0, общото време за обработка е 3), като тя докато се обработва, пристигат заявките 2, 1 и 4, като измежду тях с най-малко време за изчакване е 1 (тази заявка вече е изчакала една секунда и и трябва още една секунда за обработка, т.е. общо време за изчакване 2), след това 2 (тази заявка е изчакала вече 3 секунди за да стартира т.е. общо време за изчакване 5 сек) и накрая 4 (тази заявка е изчакала 3 секунди преди започване на обработка, затова общото време за изчакване е 7 сек). Минимално време за обработка = 2, максимално време за обработка = 7.

Input Format

На първия ред получавате цяло положително число $N$ - колко заявки ще бъдат изпратени.

На втория ред получавате цели положителни числа $A_1, \dots, A_N$, разделени с интервал - времето за изчакване на всяка заявка.

Constraints

$1 < N \le 10^6$

$1 < A_i \le 10^5$

Output Format

На единствен ред на стандартния изход изведете, разделени с интервал, две цели числа Min и Max, показващи минималното и максималното време за изчакване на заявка.


Sample Input 0

5
4 5 6 5 5 

Sample Output 0

4 23

Sample Input 1

10
8 6 2 10 10 7 7 9 7 5 

Sample Output 1

6 67