eolymp
bolt
Try our new interface for solving problems
Məsələlər

Постоянные биты

Постоянные биты

Компания WhatNext создает генераторы последовательностей, которые, как они надеются, будут выдавать произвольные последовательности \textbf{16}-битовых беззнаковых целых чисел в интервале \textbf{0--65535}. Последовательность задается целыми числами \textbf{A}, \textbf{B}, \textbf{C} и \textbf{S}, где \textbf{1 }≤ \textbf{A }< \textbf{32768}, \textbf{0} ≤ \textbf{B} < \textbf{65536}, \textbf{2} ≤ \textbf{C} < \textbf{65536} и \textbf{0} ≤ \textbf{S} < \textbf{C}. \textbf{S} - первый элемент последовательности, а каждый следующий элемент получается из предыдущего. Если \textbf{X} - некоторый элемент последовательности, то следующим будет элемент \textbf{(A*X + B) \% C} где '\textbf{\%}' обозначает остаток от деления. Хотя каждый элемент последовательности является \textbf{16}-битным беззнаковым целым числом, меньшим \textbf{65536}, промежуточный результат \textbf{A*X + B} может быть большим. Поэтому вычисления следует производить в \textbf{32}-битовых целых числах, а не в \textbf{16}-битовых для получения правильного результата. Некоторые значения параметров генерируют лучшие последовательности, чем другие. Наиболее плохими последовательностями в компании WhatNext являются те, в которых имеется один или несколько никогда не изменяющихся бит. Бит, который никогда не изменяется во всей последовательности, называется постоянным. В идеале последовательность не должна иметь постоянный бит. Вам следует протестировать последовательность и определить, какие биты в ней являются постоянными. Например, очень плохим будет выбор \textbf{A = 2}, \textbf{B = 5}, \textbf{C = 18} и \textbf{S = 3}. Он генерирует последовательность \textbf{3}, \textbf{(2*3+5)\%18 = 11}, \textbf{(2*11+5)\%18 = 9}, \textbf{(2*9+5)\%18 = 5}, \textbf{(2*5+5)\%18 = 15}, \textbf{(2*15+5)\%18 = 17}, затем \textbf{(2*17+5)\%18 = 3} снова и так далее. Последовательность повторяется через каждые шесть членов: Последняя строка указывает позиции, в которых биты всегда остаются \textbf{0}, всегда \textbf{1}, или принимают оба значения. Заметим, что \textbf{12} из \textbf{16} бит являются постоянными. Хорошие случайные последовательности не имеют постоянных бит, но обратное утверждение не верно. Например, последовательность полученная значениями \textbf{A = 1}, \textbf{B = 1}, \textbf{C = 64000} и \textbf{S = 0} не имеет постоянных бит, однако не является случайной: она лишь считает от \textbf{0} до \textbf{63999} и повторяется. Последовательность не обязательно должна повторяться с первого элемента последовательности: значения \textbf{A = 2}, \textbf{B = 0}, \textbf{C = 16} и \textbf{S = 2} генерируют последовательность \textbf{2}, \textbf{4}, \textbf{8}, \textbf{0}, \textbf{0}, \textbf{0}, \textbf{...} . \InputFile Входные данные содержат от одного до шестнадцати тестов, завершающихся строкой из одного \textbf{0}. Каждый тест состоит из единственной строки, содержащей целые числа \textbf{A}, \textbf{B}, \textbf{C} и \textbf{S} в десятичной записи, разделенные пробелом. \OutputFile Для каждого теста вывести одну строку, содержащую \textbf{16} символов '\textbf{1}', '\textbf{0}' или '\textbf{?}' для каждого из \textbf{16} бит в порядке с наиболее значимого. '\textbf{1}' означает, что соответствующий бит всегда равен \textbf{1}, '\textbf{0}' означает что соответствующий бит всегда равен \textbf{0}, а '\textbf{?}' означает то что бит в последовательности может принимать значения как \textbf{0}, так и \textbf{1}.
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
2 5 18 3
1 1 64000 0
2 0 16 2
256 85 32768 21845
1 4097 32776 248
0
Çıxış verilənləri #1
00000000000????1
????????????????
000000000000???0
0101010101010101
0???000011111???
Mənbə ACM Mid-Central Regional Programming Contest 2007