Четвер, 28.03.2024, 17:34
Головна Реєстрація RSS
Вітаю Вас, Гість
Наше опитування
Оцініть мій сайт
Всього відповідей: 68
Головна » 2018 » Листопад » 19 » ІI тур Всеукраїнської учнівської олімпіади з програмування
18:01
ІI тур Всеукраїнської учнівської олімпіади з програмування

18 листопада 2018 року в Хоцьківській ЗОШ І-ІІІ ступенів відбувся ІI тур Всеукраїнської учнівської олімпіади з програмування серед учнів 8-11 класів.

В цьому році учасникам запропонували розв’язати 6 задач.

Для написання робіт учасникам було надано середовище Free Pascal.

Завдання для 8, 9, 10 та 11-го класу традиційно були однаковими. Рівень складності задач варіювався від досить простих (задача під першим номером - її повністю розв’язали всі учасники) до надзвичайно складних (задача під п'ятим номером - розв’язала її тільки Янча Тетяна).

Завдання Всеукраїнської учнівської олімпіади з програмування
2018-2019 н.р.
Переяслав-Хмельницький район
ІІ тур

Задача 1. KUB (20 балів)

На уроці праці вчитель дав учням як зразок дерев’яний квадрат розміром сторони А см та товщиною H мм. Складіть програму, яка допоможе учням визначити скільки ще потрібно виготовити таких самих квадратів, щоб поклавши їх на зразок та один на одного отримати куб?

Вхідні дані. В єдиному рядку файла Kub.dat через пропуск записано розмір сторони квадрата в сантиметрах і товщина квадрата в міліметрах. Всі вони є цілими числами 1 ≤ А, H ≤ 10000.
Вихідні дані. У файлі Kub.res записати єдине ціле число - кількість квадратів або “NO”, якщо такий куб зробити неможливо.

Приклад

 № тесту   Kub.dat   Kub.res 
 1   4 1   39 
 2   10 3   NO 

Задача 2. METRO (30 балів)

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

Вхідні дані. В єдиному рядку файла Metro.dat через пропуск записано три числа: N – загальна кількість станцій, а потім I та J – номер станції, на якій сідає і номер станції, на якій сходить Степан. Станції пронумеровані підряд натуральними числами 1, 2, 3, … N (1-a станція сусідня N-й), N ≤ 100. Числа I та J не співпадають. Всі числа розділені пропуском.
Вихідні дані. У файлі Metro.res записати мінімальну кількість проміжних станцій, які потрібно проїхати Степану.

Приклад

 № тесту   Metro.dat   Metro.res 
 1   100 5 6   0 
 2   40 25 5   19 

Задача 3. POINT (50 балів)

Написати програму, що визначає, чи дана точка належить даному трикутнику, якщо вказано координати цієї точки та вершин трикутника.

Вхідні дані. В єдиному рядку файла Point.dat через пропуск записано координати даної точки та вершин трикутника. Всі числа цілі та не перевищують по модулю 100.
Вихідні дані. У файлі Point.res записати слово “yes” або “no”.

Приклад

 № тесту   Point.dat   Point.res 
 1   1 1 0 0 0 3 3 0   yes 
 2   4 4 0 0 0 3 3 0   no 

Задача 4. ALPHA (50 балів)

Написати програму, яка в кожному слові даного тексту без розділових знаків всі літери та цифри упорядковує за алфавітом, причому в алфавіті великі літери розміщені перед малими, а десяткові цифри попереду великих літер.

Вхідні дані. У файлі Alpha.dat записано даний текст (кількість літер не обмежена).
Вихідні дані. У файлі Alpha.res записати даний текст, перетворений згідно умови.

Приклад

 № тесту   Alpha.dat   Alpha.res 
 1   програмування   аавгмннопрруя 
 2   English   Eghilns 

Рішення:

Задача 5. POLYG (75 балів)

Написати програму, яка для вказаних координатами точок на площині визначає у порядку обходу координати точок опуклої оболонки.

Вхідні дані. У файлі Polyg.dat в окремих рядках у довільному порядку записано координати xi, yi (i < 100) точок.
Вихідні дані. У файлі Polyg.res також у окремих рядках записати координати точок одержаної оболонки в порядку за годинниковою стрілкою.

Приклад

 Polyg.dat   Polyg.res 
 12 1
 1 1
 10 3
 12 12 
 1 1
 12 12
 12 1 
 

Рішення:

Задача 6. COMPT (75 балів)

При новому наборі на комп’ютерні курси бажаючих розбито на N груп. У i-й групі виявилося Xi осіб. Необхідно розподілити групи по комп’ютерних класах. Всього є M > N класів, в i-у класі Yi комп’ютерів. Написати програму, яка знайде, яку максимальну кількість груп вдасться одночасно розподілити по аудиторіях, щоб всім учням у кожній групі дісталось по одному комп'ютеру, і залишився ще хоча б один для викладача, якщо переносити комп’ютери з одного класу в інший заборонено.

Вхідні дані. У першому рядку вхідного файла Compt.dat розташовані числа N і M. (1 < N < M < 1000). У другому рядку розташовано N чисел − Xi … XN (1 ≤ Xi для всіх Xi ≤ i ≤ N). У третьому рядку розміщено M чисел − Yi … YM (1 ≤ Yi для всіх 1 ≤ i ≤ M).
Вихідні дані. Вивести у першому рядку файла Compt.res число P − кількість груп, які вдасться розподілити по комп’ютерних класах. У другому рядку вивести розподіл груп по класах N чисел, i-е число повинне відповідати номеру класу, в якому буде навчатися i-а група. (Нумерація як груп, так і класів починається з 1. Якщо i-а група залишилася без аудиторії, i-е число повинне дорівнювати 0. Якщо виявиться допустимих розподілів кілька, вивести будь-яке з них.

Приклад

 Compt.dat   Compt.res 
 3 4 
 5 3 4 
 3 5 3 6 
 2 
 0 2 4 
 

Рішення:

Результати ІІ (районного) туру Всеукраїнської учнівської олімпіади з програмування:

Прізвище та ім'я Клас  KUB   METRO   POINT   ALPHA   POLYG   COMPT   Всього 
 балів 
 % 
1  Бурмак Наталія  8 20 30 0 50 0 0 100 33
2  Коваленко Валентина  9 20 30 50 50 0 75 225 75
3  Батрак Сергій  10 20 0 15 0 0 0 35 12
4  Янча Тетяна  11 20 30 50 50 55 75 280 93

До ІІІ (обласного) туру Всеукраїнської учнівської олімпіади з програмування
запрошуються такі учні:

 Прізвище та ім'я  Клас  Бали   Місце 
1  Бурмак Наталія  8 100 3
2  Коваленко Валентина  9 225 2
3  Янча Тетяна  11 280 1

Наверх

Переглядів: 681 | Додав: ivv
Всього коментарів: 0
avatar