Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2liga_final_2013

.pdf
Скачиваний:
27
Добавлен:
07.02.2016
Размер:
650.68 Кб
Скачать

Всеукраїнська студентська олімпіада з програмування

ФІНАЛ. Харків

24-27 жовтня 2013

.

Задача K. Загадка стародавнього племені

Ім'я вхідного файлу:

k.in

Ім'я вихідного файлу:

k.out

Ім’я файлу програми:

k.c, k.cpp, k.java

Обмеження часу:

1 секунда

Обмеження пам'яті:

64 Mb

Подорожуючи Бразилією та дивлячись на те, як країна готується до чемпіонату світу з футболу 2014 року, наші герої цікавилися і історією цієї дивовижної країни. У одному місті вони відвідали музей стародавніх племен, де їх увагу привернув наскельний напис. За словами екскурсовода, у стародавніх племен існувало повір'я, яке свідчило: "Чим більше разів напишеш підряд у рядку ім'я бога, тим більше проживеш". На жаль до наших часів дійшов тільки фрагмент такого напису. Пана Коцького зацікавило питання – яке мінімальне за довжиною ім'я написане і повторювалось на цьому наскельному написі? Допоможіть знайти відповідь на це питання.

Формат вхідних даних

У першій і єдиному рядку вхідного файлу наведено рядок (фрагмент напису, що дійшов до нашого часу), який містить тільки латинські літери, довжина рядка не перевищує 50 000 символів.

Формат вихідних даних

У вихідний файл виведіть одне число – мінімально можливу довжину початкового імені, яке повторювалось на наскельному написі.

Приклад:

k.in

k.out

 

 

bcabcab

3

zzz

1

Всеукраїнська студентська олімпіада з програмування

ФІНАЛ. Харків

24-27 жовтня 2013

Задача L. Свято Фарби

Ім'я вхідного файлу:

l.in

Ім'я вихідного файлу:

l.out

Ім’я файлу програми:

l.c, l.cpp, l.java

Обмеження часу:

1 секунда

Обмеження пам'яті:

64 Mb

Подорожуючи Південною Америкою, наші герої заїхали у державу Кольоровію, де саме святкували свято Фарби. На честь свята мешканці завжди проводили змагання на біговій доріжці стадіону, яку перед цим фарбували різними кольорами. У процесі фарбування приймали участь N малярів і кожний з них фарбував своїм кольором, відмінним від іншого. Крім того кожний маляр знав який відрізок бігової доріжки він повинен пофарбувати. Але, оскільки процес фарбування проходив послідовно, то деякі ділянки бігової доріжки перефарбовувалися. Трохи поміркувавши Котигорошко знайшов таку послідовність роботи малярів, за якої, після закінчення усього процесу фарбування, кількість різних кольорів на доріжці буде максимальним.

Cпробуйте і Ви це зробити.

Формат вхідних даних

Перший рядок містить ціле число N (1 ≤ N ≤ 300). Наступні N рядків містять по два

цілих числа через пробіл. У -ому з цих рядків знаходяться числа Lі та Rі (–109 ≤ Lі < Rі ≤ 109),

де Lі – початкова координата фарбування -ої ділянки;

Rі – кінцева координата фарбування -ої ділянки.

Формат вихідних даних

Упершому рядку треба вивести максимальну кількість кольорів, що буде видно на доріжці при оптимальному порядку фарбування.

Удругому рядку повинно бути написано N чисел – -е число позначає, який відрізок

треба намалювати -им для досягнення оптимального результату.

Відрізки нумеруються, починаючи з одиниці, в тому ж порядку, в якому вони задані у вхідному файлі.

Примітка. За наявності декількох рішень вивести будь -яке з них.

Приклад:

 

l.in

 

l.out

 

 

 

 

4

 

3

 

1

3

4

1 2 3

2

4

 

 

2

3

 

 

1

4

 

 

Всеукраїнська студентська олімпіада з програмування

ФІНАЛ. Харків

24-27 жовтня 2013

Задача M. Щасливий білет

Ім'я вхідного файлу:

m.in

Ім'я вихідного файлу:

m.out

Ім’я файлу програми:

m.c, m.cpp, m.java

Обмеження часу:

1 секунда

Обмеження пам'яті:

64 Mb

Пересуваючись громадським транспортом у Кольоровії, наші герої помітили одну особливість – усі білети мали номери, що складалися тільки з нулів та одиниць, а щасливим вважався білет, що не мав у номері трьох підряд розташованих нулів. Пана Коцького зацікавило питання – якщо номер білета має N цифр, то яким буде номер К-го щасливого білета?

Формат вхідних даних

У першому рядку вхідного файлу записана кількість тестів T (1 ≤ T ≤ 10 000). Наступні T рядків містять самі тести. Кожен тест складається з двох цілих чисел — N

(1 ≤ N ≤ 50) та K.

Формат вихідних даних

Для кожного тесту вивести K-ту у лексикографічному порядку щасливу послідовність довжини N. Гарантується, що кількість щасливих послідовностей не менше K.

Приклади:

 

m.in

m.out

8

 

001

3

1

010

3

2

011

3

3

100

3

4

101

3

5

110

3

6

111

3

7

0010

4

1

 

Всеукраїнська студентська олімпіада з програмування

ФІНАЛ. Харків

24-27 жовтня 2013

Задача N. Транспортна стрічка

Ім'я вхідного файлу:

n.in

Ім'я вихідного файлу:

n.out

Ім’я файлу програми:

n.c, n.cpp, n.java

Обмеження часу:

1 секунда

Обмеження пам'яті:

64 Mb

Закінчивши свою подорож, наші герої приїхали у міжнародний аеропорт столиці Кольоровії, де чекали свого рейсу до України. Оскільки часу у них було вдосталь, вони піднялися на оглядовий майданчик аеровокзалу, де з цікавістю спостерігали за процесом розвантаження літака, що саме приземлився. Цікавість у них викликала та обставина, що від дверей літака до дверей приймального відділення вантажів, відстань між якими дорівнювала L метрів, співробітники аеропорту спорудили автоматичну транспорту стрічку довжини L, яка формувалася з двох типів блоків різної довжини – X та Y метрів.

Котигорошка зацікавило питання – "Скільки блоків кожного виду треба використати для формування автоматичної транспортної стрічки, щоб їх загальна кількість була найменшою?". Допоможіть Котигорошку у вирішенні цього питання.

Формат вхідних даних

У першому рядку вхідного файлу записані два числа X та Y – довжина блоків, задана з двома десятковими знаками (0,01 ≤ X, Y ≤ 25.00).

Другий рядок містить одне число L (0,01 ≤ L ≤ 109) – відстань від дверей літака до дверей приймального відділення вантажів з двома десятковими знаками.

Формат вихідних даних

В єдиному рядку вивести через пробіл два числа: кількість блоків першого типу, кількість блоків другого типу. Якщо транспорту стрічку, що точно вписується у означену відстань, зробити неможливо – вивести одне число 0.

Приклади:

 

n.in

 

n.out

7.01

13.21

8

2

82.50

 

 

 

7.01

13.21

0

 

11.20