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