Hide

Problem B
Staring Contest

Languages da de en fi lt lv pl uk
/problems/boi23.staringcontest/file/statement/uk/img-0001.png

Змагання у триманні погляду — це класична битва за невразливість, в якій двоє людей дивляться один на одного в очі, зберігаючи обличчя впевненої безтурботності. Мета полягає в тому, щоб тримати зоровий контакт довше, ніж опонент. Змагання закінчується, коли один учасник втрачає самовладання, зазвичай, зводячи погляд, посміхаючись, говорячи або хихотячи.

Як тренер збірної команди з тримання погляду, вам потрібно визначити невразливість кожного з n членів Вашої команди на майбутніх світових фіналах. i-тий спортсмен може тримати очний контакт рівно ai секунд, але ці значення на початку Вам не відомі. Наприклад, у Вас може бути команда з n=3 членів:

i

Ім’я

ai

1

Анна

431

2

Естер

623

3

Тоні

121

Коли спортсмени i та j змагаються, конфронтація триває рівно min(ai,aj) секунд, після чого слабший суперник втрачає самовладання, і обидва учасники відразу ж починають посміхатися та хихотіти. Наприклад, якщо Анна змагається проти Естер, змагання триває 431 секунду. Важливо підкреслити, що для стороннього спостерігача справжнього переможця конфронтації (у цьому випадку — Естер) визначити неможливо. Можливо лише виміряти тривалість змагання.

Ваша мета — оцінити значення a1,,an за допомогою якомога меншої кількості змагань з тримань погляду. Як зрозуміло, сила найсильнішого спортсмена ніколи не може бути визначена, тому Ви можете недооцінити одне зі значень ai.

Взаємодія

Це інтерактивна задача. Взаємодія починається з того, що Ви отримуєте один рядок з цілим числом n. Далі Ви можете запитувати значення, виконуючи запити у вигляді “? i j”, де 1in, 1jn та ij. Відповідь на запит — це ціле число: значення min(ai,aj). Взаємодія закінчується тоді, коли Ви виводите на екран рядок, що складається з ! та n оцінок у вигляді цілих чисел b1, , bn, розділених пробілами. Це має бути вашим останнім рядком виводу.

Ваше рішення вважається правильним, якщо bi=ai для кожного спортсмена i, окрім одного, якого Ви можете недооцінити. Для точності ми вимагаємо, щоб biai для всіх 1in та дозволяємо bkak не більше ніж для одного k.

Взаємодія відбувається з незмінним інтерактором, що означає, що значення a1,,an визначаються до початку взаємодії.

Обмеження та оцінювання

Кількість спортсменів n задовольняє умову 2n1500. Навички кожного спортсмена ai задовольняють умову 1ai86400, вони всі різні. Ви можете використовувати не більше 3000 запитів; останній рядок виводу, тобто рядок, що починається з символу !, не рахується як запит.

Ваше рішення буде перевірено на наборі тестових груп, кожна з яких оцінюється в певну кількість балів. Кожна група тестів містить набір тестових випадків. Щоб отримати бали за групу тестів, вам потрібно вирішити всі тестові випадки у групі. Остаточний бал складається з максимального балу, отриманий за одне подання.

Для групи 3, Ваш бал буде мінімальним балом серед всіх тестових випадків у групі. Бали за кожен тестовий випадок залежать від кількості запитів, які ви використовуєте; менша кількість запитів оцінюється краще: Припустимо, що ви використали q запитів. Якщо qn+25, то ви отримуєте повний бал в 80 балів. Якщо q>3000, то ви не отримуєте жодного балу. В іншому випадку, ви отримуєте 118.212ln(qn) балів, округлених до найближчого цілого числа. Наприклад, для n=1500 та q=3000, ви отримуєте 30 балів.

Група

Бали

Обмеження

1

9

n50

2

11

n1000

3

080

1000<n1500

Пояснення до прикладу взаємодії

Приклад взаємодії 1 показує можливу взаємодію згідно з вищезазначеним прикладом. Зверніть увагу, що сила Анни та Тоні визначені коректно. (Сила Естер ніколи не може бути визначена.)

Read Sample Interaction 1 Write
3
? 1 2
431
? 1 3
121
? 3 2
121
! 431 431 121
Hide