Республиканская олимпиада по информатике. 2018 год
Задача E. Na2a и уравнение
Ограничение по времени:
1 секунда
Ограничение по памяти:
256 мегабайт
Na2a много баловался на уроке информатики, и учитель в наказание ему придумал следующую задачу. Найти неотрицательное целое число x, такое что (a1⊕x)+(a2⊕x)+...+(an⊕x)=S, где a1,...,an,S — заданные числа. Здесь ⊕ обозначает операцию побитового XOR или исключающего ИЛИ. Данная операция существует во всех современных языках программирования, например, в языках C++ и Java она обозначена как <<\string^>>, в Pascal — как <
Формат входного файла
В первой строке находятся два целых числа n, S(1≤n≤105,0≤S≤1012).
Во второй строке находятся n целых числа a1, a2, ..., an(0≤ai≤1012).
Формат выходного файла
Выведите -1, если уравнение не имеет неотрицательных решений. Иначе выведите такое x(x≥0), что описанное в условии равенство выполняется. Если существует несколько ответов, выведите любой из них.
Система оценки
Данная задача содержит пять подзадач, в каждой подзадаче выполняются ограничения из условии и:
- n≤1000,ai,s≤1000. Оценивается в 7 баллов.
- n=2,ai,s≤1012. Оценивается в 22 баллов.
- n≤104,ai,s≤106. Оценивается в 20 баллов.
- n≤105,ai,s≤5⋅107. Оценивается в 16 баллов.
- n≤105,ai,s≤1012. Оценивается в 35 баллов.
Пример:
Вход 3 4 1 2 3Ответ
2\Note Таблица для исключающего ИЛИ.\\ 1 xor 1 = 1, 1 xor 0 = 1\\ 0 xor 1 = 1, 0 xor 0 = 0\\ Например, если X = 10910 = 11011012, Y = 4110 = 1010012 тогда: X ⊕ Y = 6810 = 10001002. ( Temirlan Satylkhanov )
Комментарий/решение:
Возможно, что при неправильном наборе формул, они будут
доредактированы модератором. При этом содержание не будет меняться.