Ограничения: время – 1s/2s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод 
Послать решение Blockly Посылки Темы Где Обсудить (0)
После пиратов на берегу острова остались N пустых бутылок и N пробок от них. У всех бутылок горлышко
имеет разный диаметр, и каждая пробка подходит только к одной из бутылок.
Напишите подпрограмму void solve(int N), которая установит соответствие между пробками и бутылками.
Этой подпрограмме передается одно целое числа – количество пробок и бутылок N (1 ≤ N ≤ 10000).
Подпрограмма должна вызывать функцию int query(int i, int j), где i – номер пробки, а j – номер бутылки (1 ≤ i, j ≤ N),
которая возвращает –1, если диаметр пробки i меньше диаметра
горлышка бутылки j, или 1, если пробка больше, или 0, если
пробка точно подходит. Подпрограмма может сделать не более 500000 запросов. Когда подпрограмма
полностью определит соответствие между бутылками и пробками, она должна вызвать функцию
void report(int r[]), в качества аргумента которой передается массив из целых чисел от 1 до N, и завершить работу.
(i-1)-й элемент в этом массиве указывает номер пробки для i-й бутылки.