IP-адреса и подсети CIDR
Просмотр в формате PDFСетевой монитор анализирует список IPv4-адресов и должен определить, в сколько заданных CIDR-подсетей попадает каждый адрес.
IPv4-адрес записывается в виде a.b.c.d, где a, b, c, d — целые числа от 0 до 255.
CIDR-подсеть записывается в виде a.b.c.d/p, где p — целое число от 0 до 32. Считается, что IP-адрес принадлежит такой подсети, если его первые p битов совпадают с первыми p битами адреса a.b.c.d при просмотре битов слева направо, от старшего к младшему. Если p = 0, то в такую подсеть попадает любой IPv4-адрес.
Даны n подсетей и q IPv4-адресов. Для каждого адреса определите, в скольких из заданных подсетей он содержится.
Входные данные
Первая строка содержит два целых числа n и q — количество подсетей и количество IP-адресов соответственно.
Следующие n строк содержат по одной подсети в формате a.b.c.d/p.
Следующие q строк содержат по одному IPv4-адресу в формате a.b.c.d.
Гарантируется, что все числа в записи адресов и подсетей заданы без ведущих нулей, кроме числа 0.
Выходные данные
Для каждого из q адресов выведите в отдельной строке одно целое число — количество заданных подсетей, в которые попадает этот адрес.
Ограничения
1 <= n, q <= 10^50 <= a, b, c, d <= 2550 <= p <= 32
Примеры
Пример 1
Входные данные
1 1
0.0.0.0/0
1.2.3.4
Выходные данные
1
Пример 2
Входные данные
5 5
0.0.0.0/0
1.2.3.4/32
1.2.3.0/24
10.0.0.0/8
127.0.0.1/32
1.2.3.4
1.2.3.5
127.0.0.1
8.8.8.8
10.255.255.255
Выходные данные
3
2
2
1
2
Комментарии