Ограничение времени 1 секунда
ограничение памяти 64mb
ввод стандартный ввод или input.txt
вывод стандартный вывод или output.txt
в самом начале своего пребывания в угуланде сэр макс мог общаться с безмолвной речи только со псом джуффина хуфом. но талант к истинной магии не потеряешь! и когда из дома маклуфа прибежал слуга с сообщением о новом преступлении, макс послал зов джуффину в дом у моста! джуффин, макс и другие сотрудники тайного войска стали обследовать комнату, в которой произошло убийство. у каждого из них есть свой индикатор магии, встроенный в какой-нибудь обычный предмет, у джуффина — в трубку. в мире угуланда запрещена белая магия выше пятого уровня и черная магия выше второго, а тут индикаторы зашкаливают! вам нужно определить, каких нарушений было больше: белой магии или черной. в любом случае нужно еще вывести на сколько максимально было превышено допустимое значение.
формат ввода
вводится целое число n — количество сотрудников, измеряющих уровень магии. каждый сотрудник сначала передает измеренное значение уровня белой магии, в следующей строке — черной. то есть дальше идут 2 * n строк.
формат вывода
выводятся две строки в формате: белая магия или черная магия или поровну. максимальное превышение: {количество}
пример 1
ввод вывод
3
5
3
12
2
4
5
черная магия
максимальное превышение: 7
пример 2
ввод вывод
3
15
3
12
2
4
5
поровну
максимальное превышение: 10
примечания
если нарушений не было или было одинаковое количество, то вывести поровну.
Мы продолжаем публикацию цикла «руководств пользователя», посвященных теоретическому и практическому рассмотрению различных компонентов современного ПК, начало которому положил материал «Современные десктопные процессоры архитектуры x86: общие принципы работы (x86 CPU FAQ 1.0)». В настоящем руководстве мы рассмотрим основные современные виды оперативной памяти, применяемой в десктопных системах (оперативную память, применяемую в серверах и ноутбуках, оставим за его рамками). Под ними будем подразумевать память класса SDRAM — SDR (Single Data Rate — память с одинарной скоростью передачи данных), DDR (Double Data Rate — память с удвоенной скоростью передачи данных) и DDR2 (память DDR второго поколения). Возможно, SDRAM «как таковая» (в ее первоначальном варианте SDR SDRAM) на сегодня уже не является столь актуальным видом памяти, тем не менее, все три перечисленных вида принадлежат одному и тому же классу и базируются примерно на одних и тех же принципах функционирования, которые мы и рассмотрим прямо сейчас.Содержание
Код в приложении.
Пояснения:
Посмотрим, как же нам решить задачу. Сначала, поймём как обнулить бит. Бит можно обнулить если использовать логическое И с нулём. Значит, нам нужно использовать логическое И на нужном бите. Как же это сделать? В С++ есть побитовые операции между двумя числами, но побитовое И (&) применяется между всеми битами двух чисел, т.е.
Заметим, что
Числа в С++ с фиксированной разрядностью, т.е. битов всегда определённое кол-во. Исходя из условий задачи, тут нужен int - 32-битный тип.
Тогда, чтобы обнулить нужный бит, нам нужно использовать побитовое И с таким числом, что все его биты, кроме нужного, равны 1.
Добиться этого мы сможем следующим образом. Сдвинем 1 влево на k бит и получим такое число, что все биты, кроме k-го равны 0, а k-ый равен 1, и используем побитовую инверсию (~), т.е. инвертируем каждый бит в числе.
Получив нужное число, выполняем побитовое И и обнуляем k-ый бит.
Как работают примеры:
И второй пример: