Professional Documents
Culture Documents
ICPC 2021 Stage 1 Statements
ICPC 2021 Stage 1 Statements
I stage
18 вересня, 2021
Яку найменшу кiлькiсть монет треба витратити, щоб число камiнцiв на столi почало дiлитись
нацiло на 5?
Звернiть увагу, що 0 дiлиться на будь-яке число, а отже, якщо на столi лишається 0 камiнцiв, то
умова задачi виконана.
Формат вхiдних даних
Єдиний рядок мiстить єдине цiле число n (0 6 n 6 109 ) — початкова кiлькiсть камiнцiв на столi.
Формат вихiдних даних
Виведiть єдине число — мiнiмальну кiлькiсть монет яку треба витратити, щоб число камiнцiв на
столi почало дiлитись нацiло на 5.
Приклади
standard input standard output
0 0
1 1
3 2
228 2
300 0
2021 1
Зауваження
В першому прикладi на столi спочатку лежить 0 камiнцiв. 0 дiлиться на 5, тому не потрiбно
витрачати жодної монети.
В другому прикладi можна заплатити одну монету i забрати один камiнець зi столу. Тодi на
столi опиниться 0 камiнцiв, а 0 дiлиться на 5.
В третьому прикладi можна заплатити одну монету i покласти ще один камiнець на стiл (таким
чином, на столi буде 4 камiнцi), а потiм заплатити ще одну монету i покласти ще один камiнець на
стiл, отримуючи таким чином 5 камiнцiв, що дiлиться на 5.
1
All-Ukrainian Collegiate Programming Contest
I stage
18 вересня, 2021
• Для даного набору рiзних iндексiв непарної довжини a1 , a2 , . . . , al , ви можете дiзнатись таке
число x, що px є медiаною елементiв pa1 , pa2 , . . . , pal .
• System.out.flush() в Java;
• flush(output) в Pascal;
• stdout.flush() в Python;
Приклад
standard input standard output
4 ? 3 2 3 4
2 ? 3 1 3 4
3 ? 3 1 2 4
2 ? 3 1 2 3
3 ! 1 3 2 4
Зауваження
В прикладi загадана перестановка p =(1, 3, 2, 4).
Перший запит в прикладi — хочемо дiзнатись медiану елементiв p2 , p3 , p4 , що дорiвнюють 3, 2, 4
вiдповiдно. Медiана цих чисел — 3, тобто p2 , тому iнтерактор вiдповiдає числом 2.
2
All-Ukrainian Collegiate Programming Contest
I stage
18 вересня, 2021
3
All-Ukrainian Collegiate Programming Contest
I stage
18 вересня, 2021
Дано масив з n цiлих чисел [a1 , a2 , . . . , an ]. За одну операцiю можна зробити наступне:
Наприклад, якщо масив мав вигляд [1, 2, −1, 3], то ми можемо обрати i = 3, виконати операцiю,
i отримати масив [1, 1, 1, 2].
Ви можете застосовувати дану операцiю до масиву довiльну кiлькiсть разiв. Скiльки рiзних
масивiв ви можете отримати? Якщо ви можете отримати нескiнченну кiлькiсть масивiв, виведiть
−1, iнакше виведiть число цих масивiв за модулем 109 + 7.
Два масиви вважаються рiзними, якщо вони вiдрiзняються принаймнi в однiй позицiї.
Формат вхiдних даних
Перший рядок вхiдних даних мiстить єдине цiле число n (3 6 n 6 105 ) — довжину масиву.
Другий рядок мiстить n цiлих чисел a1 , a2 , . . . , an (−109 6 ai 6 109 ) — елементи масиву.
Формат вихiдних даних
Якщо ви можете отримати нескiнченну кiлькiсть масивiв, виведiть −1, iнакше виведiть число
цих масивiв за модулем 109 + 7.
Приклади
standard input standard output
3 2
18 9 2021
5 1
0 0 0 0 0
6 10
1 -1 1 -1 1 -1
Зауваження
В першому прикладi, ми можемо застосувати операцiю лише для i = 2, що дає два рiзнi масиви:
[18, 9, 2021] та [27, −9, 2030].
В другому прикладi, яку б операцiю ми не застосували, масив лишатиметься рiвним [0, 0, 0, 0, 0].
4
All-Ukrainian Collegiate Programming Contest
I stage
18 вересня, 2021
• Рядок s + t є палiндромом.
• Рядок t + s є палiндромом.
Можна показати, що при обмеженнях даної задачi такий рядок завжди знайдеться.
Нагадаємо, що палiндром — це рядок, що злiва направо читається так само як справа налiво.
Наприклад, abcba є палiндромом, а oppagangnamstyle нi.
Нагадаємо, що позначення s + t позначає конкатенацiю рядкiв s та t. Наприклад, energynot +
over = energynotover.
Формат вхiдних даних
Єдиний рядок вхiдних даних мiстить рядок s з латинських маленьких лiтер довжини не бiльше
105 .
Формат вихiдних даних
Виведiть довiльний непустий рядок t з латинських маленьких лiтер довжини не бiльше 2 · 105 ,
що задовольняє умовам задачi.
Звернiть увагу, що t не може бути пустим, навiть якщо пустий рядок задовольняє
умовi задачi.
Приклади
standard input standard output
abbaabba abba
zyzz zzyz
Зауваження
В першому прикладi, s + t = t + s = abbaabbaabba, що є палiндромом.
В другому прикладi, s + t = zyzzzzyz, а t + s = zzyzzyzz. Обидва слова є палiндромами.
5
All-Ukrainian Collegiate Programming Contest
I stage
18 вересня, 2021
Сумарна довжина маршруту дорiвнює сумi вiдстаней мiж мiстами, що йдуть в маршрутi пiдряд.
Вiдстань мiж мiстами i, j визначається за такою формулою:
Зауваження
В першому прикладi iснує 4 такi маршрути:
• 2 → 3 → 4 : довжина рiвна 2 + 3 = 5.
• 4 → 3 → 2 : довжина рiвна 3 + 2 = 5.
• 1 → 3 → 2 : довжина рiвна (1 + 2) + 2 = 5.
• 2 → 3 → 1 : довжина рiвна 2 + (1 + 2) = 5.
6
All-Ukrainian Collegiate Programming Contest
I stage
18 вересня, 2021
Задача F. ПерестановочкА
Лiмiт часу: 1 second
Лiмiт використання пам’ятi: 256 megabytes
Для перестановки p чисел вiд 1 до n, визначимо f (p) наступним чином: для кожної пари чи-
сел (i, j) з 1 6 i 6 j 6 n, порахуємо пару (min, max), де min — найменше число серед чисел
ai , ai+1 , . . . , aj , а max — найбiльше з них. Тодi f (p) рiвна кiлькостi рiзних пар серед всiх n(n+1)
2 пар.
Наприклад розглянемо перестановку (1, 3, 2).
Зауваження
Перший приклад розiбрано в умовi.
7
All-Ukrainian Collegiate Programming Contest
I stage
18 вересня, 2021
Задача G. ПерестановочкИ
Лiмiт часу: 1 second
Лiмiт використання пам’ятi: 256 megabytes
Для перестановки p чисел вiд 1 до n, визначимо f (p) наступним чином: для кожної пари чи-
сел (i, j) з 1 6 i 6 j 6 n, порахуємо пару (min, max), де min — найменше число серед чисел
ai , ai+1 , . . . , aj , а max — найбiльше з них. Тодi f (p) рiвна кiлькостi рiзних пар серед всiх n(n+1)
2 пар.
Наприклад розглянемо перестановку (1, 3, 2).
8
All-Ukrainian Collegiate Programming Contest
I stage
18 вересня, 2021
Приклад
standard input standard output
3 23.3333333333
10 3 7
Зауваження
3·7 3·10 7·10
В прикладi, 4 = 5.25, 7 = 4.2857 . . ., 3 = 23.3333 . . ..
9
All-Ukrainian Collegiate Programming Contest
I stage
18 вересня, 2021
Зауваження
В першому прикладi ми можемо прокласти 3 дороги з наступними вартостями:
Найвигiднiше обрати дороги (1, 2) та (2, 3), з сумарною вартiстю 111 + 19 = 130.
10
All-Ukrainian Collegiate Programming Contest
I stage
18 вересня, 2021
• Ви можете переставити мiсцями два сусiднi елементи p. Ця операцiя займає рiвно одну се-
кунду.
Ви застосовуєте до отриманої перестановки p дану iтерацiю, поки вона не стане тотожною пере-
становкою (тобто рiвною (1, 2, 3, . . . , n)). Скiльки часу це займе? Оскiльки це число може бути дуже
великим, виведiть його за модулем 109 + 7.
Перестановка p вважається лексикографiчно меншою за перестановку q, якщо iснує такий iндекс
i, що pj = qj для всiх j < i, а також pi < qi .
Формат вхiдних даних
Перший рядок мiстить єдине число n (1 6 n 6 2 · 105 )— довжину перестановки.
Другий рядок мiстить n цiлих чисел p1 , p2 , . . . , pn (1 6 pi 6 n, всi числа попарно рiзнi) — елементи
перестановки.
Формат вихiдних даних
Виведiть кiлькiсть секунд, яка пройде, поки процес не завершиться, за модулем 109 + 7.
Приклади
standard input standard output
4 6
1 4 2 3
6 1423
6 5 4 3 2 1
Зауваження
В першому прикладi маємо:
(1, 4, 2, 3) → (1, 4, 3, 2) → (1, 3, 4, 2): 2 секунди.
(1, 3, 4, 2) → (1, 3, 2, 4): 1 секунда.
(1, 3, 2, 4) → (1, 2, 3, 4) → (1, 2, 4, 3): 2 секунди.
(1, 2, 4, 3) → (1, 2, 3, 4): 1 секунда.
Всього 6 секунд.
11
All-Ukrainian Collegiate Programming Contest
I stage
18 вересня, 2021
Дано непарне число n. Для масиву з n чисел [a1 , a2 , . . . , an ], будемо визначати його вартiсть, як
максимальну вагу досконалого парування в графi на n + 1 вершинах, в якому вага ребра (i, j) для
i < j визначається як max(ai , ai+1 , . . . , aj−1 ).
Наприклад, для масиву [1, 30, 15], ми маємо граф на 4 вершинах з наступними вiдстанями мiж
ними:
• d(1, 2) = 1
• d(3, 4) = 15
Тут парування ((1, 2), (3, 4)) має 16, а ((1, 3), (2, 4)) i ((1, 4), (2, 3)) мають ваги 60, тому вартiсть
всього масиву рiвна 60.
Вам дано масив b довжини n з попарно рiзних елементiв. Знайдiть суму вартостей всiх пере-
становок цього масиву, за модулем 109 + 7.
Нагадаємо, що досконале парування в зваженому графi на 2k вершинах — це набiр з k ребер
такий, що кожна вершина є кiнцем рiвно одного ребра. Вагою досконалого парування вважається
сума ваг всiх вибраних k ребер.
Формат вхiдних даних
Перший рядок мiстить єдине цiле число n (1 6 n 6 99 999, n непарне) — довжину масиву.
Другий рядок мiстить n попарно рiзних цiлих чисел b1 , b2 , . . . , bn (1 6 bi 6 108 ) — елементи
масиву.
Формат вихiдних даних
Виведiть суму вартостей всiх перестановок цього масиву, за модулем 109 + 7.
Приклади
standard input standard output
1 300
300
3 300
1 30 15
5 605448
42 69 228 1488 2021
Зауваження
В прикладi:
• Вартостi масивiв [1, 15, 30], [30, 15, 1], [15, 1, 30], [30, 1, 15] рiвнi 45.
12
All-Ukrainian Collegiate Programming Contest
I stage
18 вересня, 2021
Зауваження
В першому прикладi, ми розглядаємо всього одне число: 1 mod 1 = 0, тому вiдповiдь 1.
В другому прикладi, маємо 2 mod 1 = 2 mod 2 = 0, тому вiдповiдь знову 1.
В третьому прикладi, маємо 3 mod 1 = 3 mod 3 = 0, а також 3 mod 2 = 1, всього два рiзнi числа.
13