Сделать задачи с codeforses

3 000 руб. за проект
25 декабря 2021, 17:31 • 2 отклика • 18 просмотров
И / ИЛИ
Даны два 32-битных беззнаковых числа x и z. Найдите такое 32-битное беззнаковое число y, что x and y = z либо x or y = z.

Примечание: операция and означает побитовое И, операция or — побитовое ИЛИ.


Входные данные
Два целых числа x и z (0 ≤ x, z < 232).

Выходные данные
Выведите искомое число y. В случае нескольких правильных ответов выведите любой. Если решения не существует, выведите -1

Суммаризация маршрутов
В сетевом протоколе IPv4 используются 32-битные сетевые адреса. Для удобства восприятия человеком они обычно записываются в десятично-точечной нотации: 32-битный адрес разбивается на четыре восьмибитных октета, которые записываются в десятичном виде и отделяются друг от друга точками. Например, адрес 11000000101010000000000000000000 будет выглядеть как 192.168.0.0.

В памяти маршрутизаторов крупных сетей может храниться большое количество маршрутов в разные сети. Для того, чтобы уменьшить размер таблиц маршрутизации и повысить скорость обработки пакетов, придумана технология, называемая суммаризацией маршрутов. При использовании этой технологии возникает, в частности, следующая подзадача.

Имеется N IP-адресов. Требуется найти такое наибольшее целое число L, не превышающее 32, что первые L битов всех IP-адресов одинаковы, а в (L + 1)-м бите хотя бы два адреса отличаются (биты считаются слева направо, то есть от старших к младшим). Напишите программу, решающую данную задачу.


Входные данные
В первой строке входных данных записано целое число N (1 ≤ N ≤ 105). В следующих N строках записаны IPv4-адреса, по одному адресу в каждой строке. Возможны повторяющиеся адреса.

Выходные данные
Выведите одно целое число в диапазоне от 0 до 32 — искомую длину.




Cсылки на задачи:
https://codeforces.com/group/hOmOGUBB7I/contest/24...
https://codeforces.com/group/hOmOGUBB7I/contest/24...

Файлы
Отзывы
 
2 года назад
R50 d5b6bbcf75e6e30e608e223b286ef356
Фрилансер
 
2 года назад