Олімпіади інформатика та ІКТ Учитель інформатики Миколаївського НВК.
Завдання II етапу Всеукраїнської учнівської олімпіади з інформатики 2007 рік 8 - 11 клас
8 клас
Завдання 1.
Сталось ДТП і машина втекла с місця пригоди. Свідком виявився математик. Він не зміг запам'ятати номер машини, але повідомив наступну інформацію про неї:
Чотиризначний номер складається з двох цифр А і В (наприклад, ААВВ)
Сума цифр рівна S (S=А+В)
Номер ділиться на три різних простих числа Потрібно відновити номер автомобіля.
(20 балів)
 
Завдання 2.
N людей стоять по колу. Вони пронумеровані числами від 1 до N по годинниковій стрілці. Будемо рахувати цих людей по колу і виводити з кола кожну другу людину. Рахунок почнемо з людини за номером 1. Напишіть програму, яка визначає номер М останньої людини, що залишилась в колі.
Зауваження: Ваша програма повинна вводити з клавіатури одно ціле число N (1≤N≤2000000000), а виводити на екран одне ціле число - М.
Приклад.
Ввід Вивід
10 5
Порядок виведення людей буде таким - 2, 4, 6, 8, 10, 3, 7, 1, 9, 5.
(30 балів)
 
Завдання 3.
Вілібальд вирішив розрізати прямокутну клітинну сторінку розміру n*m кліток на квадрати. Спочатку він відрізує як можна більший квадрат, використовуючи один прямий розріз. Потім він прибирає отриманий квадрат і повторює дію з прямокутником, що залишився. Так поступати (весь час відрізуючи як можна більший квадрат) Вілібальд продовжує до тих пір, доки прямокутник, що залишився, не буде квадратом.
Ваше завдання – написати програму, яка по введених значеннях n і m (n< 10000, m< 10000) обчислює, як багато квадратів Вілібальд отримає вирізуванням з прямокутника описаним вище шляхом.
Приклади
Введення Вивід Коментар
3  7 5 Прямокутник був розрізаний на квадрати з довжинами 3, 3, 1, 1, 1
Введення Вивід
9999 9999 1
(50 балів)
 
9 клас
Завдання 1. (20 балів)
В вхідному файлі задано N цілих чисел, кожне з яких знаходиться в діапазоні [1..MaxLongint]. Підрахувати кількість чисел, які зустрічаються в цьому файлі, які можна представити в вигляді 2к, де к – ціле число.
 
Завдання 2. (30 балів)
Знайти найбільшу підпослідовність даної послідовності цілих чисел, сума елементів якої ділиться на 3. Напишіть програму, яка:
читає з клавіатури послідовність цілих чисел;
обчислює довжину щонайдовшої підпослідовності, сума елементів якої ділиться на 3;
виводить результат на екран;
Приклад
Введення Вивід
7  10  6  7  12  4  7  22 5
 
 
Завдання 3. (50 балів)
Під час уроку алгебри Галинка написала наступну таблицю на дошці:
 
Галинка вибрала цілі числа a і b, 0<|а|<1000, 0<|b|<1000, а≥b. Написала їх в перший і другий стовпці, потім обчислила значення а2b, написала його в третій стовпець і, нарешті, обчислила аb2 і написала його в четвертий стовпець. Ви можете вважати, що Галинка не зробила помилок в обчисленнях.
Михайлик витер деякі з чисел в таблиці і написав замість них нуль.
Ваше завдання – написати програму, яка по рядку з (модифікованою Михайликом) таблиці знайде початкові значення а, b, а2b і аb2. Якщо можлива більш ніж одна відповідь, то потрібно вивести відповідь з мінімальним значенням а. Якщо таких відповідей теж декілька, то потрібно вибрати з них відповідь з мінімальним значенням b. І так далі.
Приклади
Введення Вивід
12 0 288 0 12 2 288 48
Введення Вивід
0 0 0 81 1 -9 -9 81
 
10 клас (35 балів)
Завдання 1.
В вхідному файлі задано N цілих чисел, кожне з яких знаходиться в діапазоні [1..МахLongint]. Підрахувати кількість чисел, що зустрічаються в цьому файлі, які можна представити в вигляді 2к, де к - ціле число.
(15 балів)
Завдання 2.
Нескінченна клітинна сторінка складається з квадратних кліток. Сторона кожної клітки рівна k одиниць. Смуїдріс намалював коло радіусу r одиниць на цій сторінці. Центр цього кола був розміщений на перетині двох ліній (посередині 4-х кліток). Потім Смуїдріс замалював всі клітки, які перетинаються колом (які містять частину кола). (Якщо коло тільки дотикається межі клітки, Смуїдріс не замальовував що клітку).
Вам потрібно написати програму, яка для даних натуральних чисел k і r (k < 30000, r < 30000) обчислює, скільки кліток замалював Смуїдріс.
Приклади
Введення   Вивід
1   5               28
 
 
 
 
 
 
 
 
 
Введення    Вивід
3   7                20
 
 
 
 
 
 
 
 
 
Завдання 3.
В базі даних роутера зберігається інформація про декілька серверів, деякі із них зв'язані між собою напряму, інші – тільки опосередковано. Одержавши електронного листа від сервера з номером М (відправник), який призначено для сервера з номером N (отримувач), роутер повинен знайти в своїй базі даних найкоротший шлях пересилки цього листа по мережі. Напишіть програму, яка, знаючи інформацію про всеможливі з'єднання і їх тривалість, здійснювала б пошук самого швидкого маршруту та пересилання і видавала б інформацію про час, за який лист подолає весь цей шлях. Якщо такого шляху нема (наприклад, на проміжному сервері сталася аварія), то необхідно видати повідомлення "no".
Зауваження:
У першому рядку файлу input.txt міститься одне натуральне число 1<=N<=100 – кількість серверів, інформація про яких записана в базі даних роутера.
У другому рядку – два цілі числа 1<=S1, S2<=14, розділені пропуском, – номери сервера-відправника і сервера-одержувача.
Починаючи з третього рядка і до кінця файлу, записані активні канали зв'язку, що є між серверами, і швидкість передачі даних по цих каналах. Спочатку записані номери серверів 1<=Si, Sj<=N, а потім швидкість передачі даних між ними – ціле число 0 <=К<=1000. Всі числа в одному рядку розділені пропусками.
У вихідний файл output.txt потрібно записати одне ціле число – час, необхідний листу для проходження по найшвидшому шляху зв'язку.
Приклад 1:
input.txt
4
4 1
1 2 10
1 3 2
2 4 1
3 4 10
output.txt
11
Приклад 2:
input.txt
4
1 4
1 2 100
1 3 20
2 3 57
output.txt
no
(50 балів)
 
11 клас
Завдання 1. (20 балів)
N людей стоять по колу. Вони пронумеровані числами від 1 до N по годинниковій стрілці. Будемо рахувати цих людей по колу і виводити з кола кожну другу людину. Рахунок почнемо з людини за номером 1. Напишіть програму, яка визначає номер М останньої людини, що залишилась в колі.
Зауваження: Ваша програма повинна вводити з клавіатури одно ціле число N (1≤N≤2000000000), а виводити на екран одне ціле число – М.
Приклад.
Ввід      Вивід
10         5
Порядок виведення людей буде таким - 2, 4, 6, 8, 10, 3, 7, 1, 9, 5.
 
Завдання 2. (30 балів)
Хай А – послідовність з N елементів А1,...AN. Позначимо її максимальне і мінімальне число mах(А) і mіn(А) відповідно. Обчислимо суму її елементів S, S=А1+А2+…+АN. Замінимо кожен елемент послідовності на різницю S і цього елементу: Ai:=S-Ai, 1≤i≤N. Таке перетворення послідовності А назвемо операцією Confuse.
Завдання
Напишіть програму, яка по послідовності В, отриманій в результаті К-кратного застосування операції Confuse до деякої послідовності A, обчислить різницю mах(A)-mіn(A).
Приклад вхідних і вихідних даних
Введення             Вивід
4 2                           7
45 52 47 46
 
Завдання 3. (50 балів)
Потрібно змонтувати локальну мережу. Ви, оцінивши ситуацію і провівши виміри, отримали дані про необхідну кількість відрізків кабелю, а також їх довжини. Кабель продається в котушках по L м. Не завжди вдається порізати кабель так, щоб використати котушку повністю.
Необхідно порізати кабель так, щоб сума обрізків кабелю була мінімальною, а також знайти кількість котушок кабелю, яка необхідна для монтажу мережі.
 
Повернутися назад  |   
Powered by CuteNews
Повернутися до вибору завдань
© 2013-2018. Сайт учителя інформатики Макарця В.І. All Rights Reserved. informatic.sumy.ua