Сравнение последовательностей
Будем условно называть две последовательности:
• 1-одинаковыми, если они совпадают полностью (имеют одинаковую длину n и a[1]=b[1]
, a[2]=b[2]
, …, a[n]=b[n]
).
• 0.5-одинаковыми, если они не являются 1-одинаковыми, но имеют одинаковую длину n и могут быть получены друг из друга перестановкой элементов (с сохранением количества каждого элемента).
• 0.25-одинаковыми, если они не являются ни 1-одинаковыми, ни 0.5-одинаковыми, но если не учитывать количество одинаковых элементов, то набор элементов одной последовательности совпадает с набором элементов другой. Иными словами, некоторые элементы могут повторяться в разном количестве в каждой последовательности, например: один элемент встречается в первой последовательности трижды, а во второй дважды, другой элемент встречается в первой последовательности один раз, а во второй семь раз. Элементы можно переставлять местами.
• 0.125-одинаковыми, если они не являются ни 1-одинаковыми, ни 0.5-одинаковыми, ни 0.25-одинаковыми, но набор элементов одной из последовательностей является подмножеством набора элементов другой (элементы можно переставлять местами, количество повторов не имеет значения). Подмножество определяется так: множество A является подмножеством множества B, если каждый элемент A принадлежит также и B; при этом B может содержать дополнительные элементы, которых нет в A.
• 0-одинаковыми, если не выполняется ни одно из вышеупомянутых условий.
Напишите программу, которая проанализирует пару последовательностей и выдаст одно из чисел 1, 0.5, 0.25, 0.125 или 0 в соответствии с перечисленными степенями одинаковости.
Входные данные
Первая строка содержит количество элементов n[1]
в первой из двух последовательностей. Вторая строка содержит n[1]
чисел — элементы последовательности. Третья и четвертая строки аналогичным образом задают вторую последовательность. Количество элементов в каждой из последовательностей — от 1 до 123456. Значения элементов помещаются в 32-битовый знаковый целый тип.
Выходные данные
Программа должна вывести единственное число (1, или 0.5, или 0.25, или 0.125, или 0) — степень одинаковости этих последовательностей.