Вгадай дерево
Це інтерактивна задача.
Після великої битви, що знищила планетарну систему Link-Cut, місцеві жителі попросили вас допомогти відновити її. На жаль, майже вся інформація про те, як вона виглядала, зникла. Проте, маг Фрусі знову прийшов вам на допомогу! Він виявив магічну туманність, яка пам'ятає, як система виглядала до битви.
Планетарну систему Link-Cut можна представити у вигляді дерева, що складається з вершин. Для одного запиту до туманності ви можете надати перестановку вершин дерева . У відповідь на запит ви отримуєте масив , де представляє кількість зв'язаних компонентів у лісі, отриманому шляхом розгляду лише вершин , , , .
Оскільки кожен запит коштує Фрусі значну кількість мани, ви можете зробити не більше запитів.
Інтерактор не адаптивний!
Вхідні дані
Перший рядок містить лише одне число .
Протокол взаємодії
Щоб виконати запит, виведіть "?
", де - це перестановка.
У відповідь на запит програма журі виведе масив , де кожен елемент буде розділений пробілом.
Якщо запит є недійсним (тобто, перевищено максимальну кількість запитів або параметри запиту недійсні), програма журі виведе -1
і завершить роботу. У цьому випадку заверште свою програму, щоб отримати вердикт Неправильна відповідь
.
Обов'язково викликайте метод flush
після виведення кожного рядка. Ви можете використовувати:
fflush(stdout)
,cout << endl
, абоcout.flush()
вC++
;System.out.flush()
вJava
;flush(output)
вPascal
;sys.stdout.flush()
вPython
;консультуйтеся з документацією для інших мов програмування.
Вихідні дані
Щоб дати відповідь, виведіть у першому рядку "!
", а в наступних рядках - ребро, представлене двома цілими числами та , дерева в будь-якому порядку.
Приклади
5 1 1 1 1 1 1 2 3 3 1
? 1 2 3 4 5 ? 4 5 1 2 3 ! 1 2 4 3 3 1 3 5
Примітка
Це зображення відповідає другому запиту та префіксу довжини . Ми виділили вершини , в результаті чого отримали зв'язані компоненти.
Оцінювання
( балів): , ;
( балів): , ;
( бал): , ;
( бали): , ;
( балів): Дерево - це бамбук (кожна вершина має не більше двох сусідів), ;
( бали): ;
( балів): ;