Люська5612
30.12.2022 05:48

У Дмитра є n пластикових пляшок, кожна з яких вміщує рівно k літрів води. i-та пляшка заповнена водою на a i

літрів.
Нещодавно Дмитро дізнався про шкоду пластика довкіллю, тому він хоче здати як можна більше пляшок на переробку. Для цього йому потрібно всю воду з цих пляшок перелити в інші, так, щоб жодна пляшка не була переповнена (у i-ій пляшці після переливань має міститись не більше, ніж k літрів). При цьому хлопець лінивий, тому він хоче перелити як можна менше води.
До ть Дмитру знайти мінімальну кількість пляшок, яких вистачить для того, щоб перелити всю воду в них, а також мінімальну кількість літрів води, яку для цього потрібно перелити.
Зверніть увагу, що рідину з однієї пляшки можна розподіляти між декількома іншими. Тобто, необов'язково переливати всю воду з однієї пляшки в якусь одну.
Входные данные

Перший рядок містить два цілі числа n та k (1≤n≤10
5
, 1≤k≤10
4
) — загальна кількість пляшок та максимальний об'єм кожної з них.
Другий рядок містить n цілих чисел a
1

,a
2

,…,a
n

(0≤a
i

≤k) — кількість літрів води у пляшках.
Выходные данные

В єдиному рядку виведіть два цілі числа — кількість пляшок, яких вистачить для того, щоб перелити всю воду в них, а також мінімальну кількість літрів, які для цього потрібно перелити.
Примечание

У першому прикладі можна перелити всю воду з 5-ї пляшки у 3-ю, а з 1-ї — у 6-у.
У другому прикладі знадобляться всі 5 пляшок, тому переливати нічого не потрібно.
У третьому прикладі можна вибрати будь-яку пляшку й попереливати з неї по 1 літру в усі інші.
timer
Лимит на использование времени: 1000 ms
storage
Лимит на использование памяти: 256 MB
arrow_circle_up
У вас есть еще 49 попыток отправить эту задачу
Примеры

Ниже вы найдете примеры входных данных и ответы которые должна вывести ваша программа.

Пример ввода #1

6 5
1 5 3 0 2 4
Пример ответа #1

3 3
Пример ввода #2

5 8
6 8 7 5 8
Пример ответа #2

5 0
Пример ввода #3

6 6
5 5 5 5 5 5
Пример ответа #3

5 5

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
alinkass
30.11.2020 18:14

1) Записать на Паскале следующие числа: 7; 5,18; 

Запись числа 7 не изменится. Запись числа 5,18 будет отличаться лишь символом-разделителем целой и дробной части: в Паскале для этих целей используется точка, т.е. 5.18. можно записать в десятичной форме, т.е. 0.001, или в экспоненциальной: 1E-3.

2) Записать в общепринятой форме: 1.23; 2.1E1; 6.66E-3

В записи 1-го числа вместо точки появится запятая, т.е. 1,23. 2.1E1 и 6.66E-3 – это записи в экспоненциальной форме. Преобразовав их в общепринятую форму, получим 21 (2.1·10) и 0.00666 (6.66*10-3).

3) Записать на Паскале следующие формулы:

а) a+bx+cyz

В Паскале нельзя пропускать символы операций, т.е. нельзя записать bx. Кроме того, символ умножения отличается от привычной формы. В итоге получаем: a+b*x+c*y*z.

б) 

На Паскале не удастся записать числа в виде дроби. После их преобразований в строчную форму получим: a/(b*c)+(b*c)/a. Раскрыв скобки, можно получить: a/b/c+b*c/a.

0,0(0 оценок)
Ответ:
alanasia2004
03.08.2022 11:31
//PascalABC.NET 3.2 сборка 1318

Var  x1,y1,x2,y2,x,y,x3,y3,x4,y4:integer;
begin
read(x1,y1,x2,y2,x,y);
x3:=x1;
y3:=y2;
x4:=x2;
y4:=y1;
if (x<x1) and (y<=y3) and (y>=y1) then writeln('W') else
if (x<x1) and (y>y3) then writeln('NW') else
if (x>=x1) and (x<=x2) and (y>y3) then writeln('N') else
if (x>x2) and (y>y3) then writeln('NE') else
if (x>x2) and (y<=y2) and (y>=y4) then writeln('E') else
if (x>x2) and (y<y4) then writeln('SE') else
if (x<=x4) and (x>=x1) and (y<y4) then writeln('S') else
if (x<x1) and (y<y1) then writeln('SW');
end.

Пример ввода:
-2 1 4 4 -3 5
Пример вывода:
NW
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота