М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Отрак
Отрак
05.01.2020 12:55 •  Информатика

У Дмитра є 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

👇
Открыть все ответы
Ответ:
Tusovik
Tusovik
05.01.2020

Так как язык не указан, приведу пример на SWI-Prolog.

Код:

read_int(Int) :- read(Int), integer(Int).split_int_by_numbers(0, []) :- !.split_int_by_numbers(N, [Number|Ints]) :- Number is mod(N, 10), RestN is div(N, 10), split_int_by_numbers(RestN, Ints).test_to_div(_, []).test_to_div(N, [Number|Ints]) :- mod(N, Number) =:= 0, test_to_div(N, Ints). test(Int) :- split_int_by_numbers(Int, Numbers), test_to_div(Int, Numbers), write(Int), write(" - Yes!"), nl.test(Int) :- write(Int), write(" - No!"), nl.?- read_int(Int), test(Int).
Напишите программу: С клавиатуры вводится трёхзначное число (число десятков и число единиц не равна
Напишите программу: С клавиатуры вводится трёхзначное число (число десятков и число единиц не равна
Напишите программу: С клавиатуры вводится трёхзначное число (число десятков и число единиц не равна
4,6(3 оценок)
Ответ:
kristka98
kristka98
05.01.2020
1+1=10 (ноль пишем, 1 - переходит в старший разряд)
Вообще все можно представить так - 1-самая старшая цифра в двоичной с.с. (В десятичной - это 9. При прибавлении в десятичной с.с. к 9 мы получаем 10, так происходит во всех с.с. Только в двоичной самая старшая 1 и, при прибавлении к ней 1 мы получаем также 10)
  101011
+101010
 1010101
Аналогично при вычитании. Представим число в десятичной с.с, например,1000. Если из него нужно вычесть 1, то мы заберем нужный нам разряд  у 1. Тогда последний 0 превратится в 10, а все остальные 0 в 1. 
 11101
-  1111
   1110
Ну, а умножение - это тот же процесс сложения. 
               10110
                 1111
               10110
          +  10110
            10110
          10110
        101001010
4,6(47 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ