Processing math: 100%

Республиканская олимпиада по информатике. 2018 год


Задача E. Na2a и уравнение

Ограничение по времени:
1 секунда
Ограничение по памяти:
256 мегабайт

Na2a много баловался на уроке информатики, и учитель в наказание ему придумал следующую задачу. Найти неотрицательное целое число x, такое что (a1x)+(a2x)+...+(anx)=S, где a1,...,an,S — заданные числа. Здесь обозначает операцию побитового XOR или исключающего ИЛИ. Данная операция существует во всех современных языках программирования, например, в языках C++ и Java она обозначена как <<\string^>>, в Pascal — как <>. Помогите Na2a решить данное уравнение.
Формат входного файла
В первой строке находятся два целых числа n, S(1n105,0S1012). Во второй строке находятся n целых числа a1, a2, ..., an(0ai1012).
Формат выходного файла
Выведите -1, если уравнение не имеет неотрицательных решений. Иначе выведите такое x(x0), что описанное в условии равенство выполняется. Если существует несколько ответов, выведите любой из них.
Система оценки
Данная задача содержит пять подзадач, в каждой подзадаче выполняются ограничения из условии и:
  1. n1000,ai,s1000. Оценивается в 7 баллов.
  2. n=2,ai,s1012. Оценивается в 22 баллов.
  3. n104,ai,s106. Оценивается в 20 баллов.
  4. n105,ai,s5107. Оценивается в 16 баллов.
  5. n105,ai,s1012. Оценивается в 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 )
посмотреть в олимпиаде

Комментарий/решение:

  -1
6 года 1 месяца назад #

1 xor 1 = 0

  1
5 года 1 месяца назад #

показать/скрыть код

C++