Олимпиадный тренинг

Задача . F. Восстановление 01-строки


Для некоторой 01-строки \(s\) (то есть такой, что каждый символ \(s_i\) — это либо '0', либо '1') выписали все пары подряд идущих символов (все подстроки длины \(2\)). Для каждой пары (подстроки длины \(2\)) посчитали количество символов '1' (единиц) в ней.

Вам заданы три числа:

  • \(n_0\) — количество пар подряд идущих символов (подстрок), в которых \(0\) единиц;
  • \(n_1\) — количество пар подряд идущих символов (подстрок), в которых \(1\) единица;
  • \(n_2\) — количество пар подряд идущих символов (подстрок), в которых \(2\) единицы.

Например, для строки \(s=\)«1110011110» были бы выписаны следующие подстроки: «11», «11», «10», «00», «01», «11», «11», «11», «10». Таким образом, \(n_0=1\), \(n_1=3\), \(n_2=5\).

Ваша задача — по заданным \(n_0, n_1, n_2\) восстановить любую подходящую 01-строку (бинарную строку) \(s\). Гарантируется, что хотя бы одно из чисел \(n_0, n_1, n_2\) отлично от \(0\). Также гарантируется, что решение существует.

Входные данные

В первой строке записано целое число \(t\) (\(1 \le t \le 1000\)) — количество наборов входных данных в тесте. Далее во входных данных записаны сами наборы.

Каждый набор состоит из одной строки, которая содержит три целых числа \(n_0, n_1, n_2\) (\(0 \le n_0, n_1, n_2 \le 100\); \(n_0 + n_1 + n_2 > 0\)). Гарантируется, что ответ для заданных \(n_0, n_1, n_2\) существует.

Выходные данные

Выведите \(t\) строк. Каждая из строк должна содержать ответ в виде 01-строки (бинарной строки) на соответствующий набор входных данных. Если возможных ответов несколько, выведите любой из них.


Примеры
Входные данныеВыходные данные
1 7
1 3 5
1 1 1
3 9 3
0 1 0
3 1 2
0 0 3
2 0 0
1110011110
0011
0110001100101011
10
0000111
1111
000

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя