Вівторок, 19.09.2017, 21:56
Головна Реєстрація Вхід
Вітаю Вас, Гість · RSS
Меню сайту
Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0
Форма входу
 Умови
Задача A. Robot

Ліміт часу: 1 с
Ліміт пам'яті: 64 Мбт


Гуртківці ХЦНТТУМ створили робота San’ka, який може самостійно рухатися на координатній площині розміром 20х20 і вибирати найкоротший шлях при відвідуванні спеціальних детекторів, розташованих у певних точках площини. San’ka по задуму юних конструкторів рухається лише паралельно осям координат. Тобто із точки (x, y) він може за один хід переміститися в будь-яку з точок: (x, y+1), (x, y–1), (x+1, y), (x–1, y).  На випробуваннях роботу необхідно було відвідати всі детектори і повернутися у вихідну точку найкоротшим шляхом. Щоб перевірити оптимальність вибраного роботом шляху юні винахідники звертаються до олімпійців-програмістів по допомогу: складіть програму, яка зможе визначити довжину найкоротшого шляху робота San’ka.
Вхідні дані:
Перший рядок містить кількість тестів K (K≤10). Перший рядок кожного тесту містить початкові координати робота San’ka. В другому рядку кожного тесту міститься N (N≤10) кількість детекторів, вмонтованих на площині.  У наступних N рядках тесту дано координати цих детекторів. Всі координати цілі додатні числа, ніякі два детектори не встановлені в одній точці.
Вихідні дані:
Для кожного тесту вивести найменшу кількість ходів, за які робот San’ka може відвідати всі детектори і повернутися у вихідну точку.

Приклад вхідних та вихідних даних.
Приклад вхідних даних: Приклад вихідних даних:
1
1 1
4
2 3
5 5
9 4
6 5
24









Задача B. Robot-2

Ліміт часу: 1 с
Ліміт пам'яті: 64 Мбт


Політ творчої думки винахідників із ХЦНТТУМ вилився у створення нового робота San’ka-Turn. Цей робот може знаходитися у деякій точці площини і виконувати такі команди:
LEFT – повернути вліво на 90 градусів;
RIGHT – повернути вправо на 90 градусів;
TURN AROUND – повернути назад (здійснити розворот на 180 градусів)
LEFT X – повернути вліво на X градусів (X – натуральне число );
RIGHT X – повернути вправо на X градусів (X – натуральне число);
HALT – зупинити виконання команд; наступні команди не виконувати;

На початку випробування робот повернутий строго на північ  (0 градусів). Напишіть програму, яка визначить азимут робота  після виконання тестових команд. Величина азимута має значення від 0 до 359 градусів.
Вхідні дані:
Перший рядок містить кількість тестів K (K≤10). У кожному тесті перший рядок містить N (N≤50) – кількість команд робота. У наступних N рядках тесту знаходиться по одній команді для робота.  У командах LEFT X і RIGHT X 1≤X≤179.
Вихідні дані:
Для кожного тесту вивести величину азимута в окремому рядку.

Приклад вхідних та вихідних даних.
Приклад вхідних даних: Приклад вихідних даних:
1
3
LEFT
LEFT 30
TURN AROUND
60






Задача C. Hacker vs Olympians

Ліміт часу: 1 с
Ліміт пам'яті: 64 Мбт

Відомий хакер Митник був прийнятий консультантом по мережевій безпеці у деяку фірму (не будемо робити їй рекламу), що має на балансі декілька тисяч серверів.  Митнику поставлене завдання: визначити, які із серверів компанії можуть бути найкращими цілями для мережевих атак. Мережева політика компанії побудована таким чином, що окремі сервера можуть «довіряти» іншим серверам цієї компанії. Як наслідок цієї політики виходить, що коли хакери потраплять на якийсь сервер, то вони автоматично отримують доступ і до тих серверів, що «довіряють» взламаному серверу. Дальше іде ланцюговий взлом – падають усі сервера, що мають у списку «довірених»  уже взламаний.
Визначимо цінність сервера S  числом серверів, що йому «довіряють». Зрозуміло, що  самі важливі є ті сервера, які мають найвищу цінність і тому їх безпеці треба приділити більше уваги. Митник розв’язав поставлене завдання за 256 хвилин. У вас є на написання програми, яка зможе визначити найцінніші сервера компанії трохи більше 10 діб.
Мережа компанії складається з N серверів, яким поставлено у відповідність натуральні числа від 1 до N. Для деяких серверів описана їх «довіра» у вигляді пари чисел (a, b) – сервер a «довіряє» серверу b. «Довіра» не є взаємною.
Вхідні дані:
У першому рядку міститься два цілих числа N i M ( N10000), де N кількість серверів, а M – число «довір» між ними. У наступних M рядках міститься по два цілих числа a, b (1≤a, b≤N ) .
Вихідні дані:
Вивести через пробіл у зростаючому порядку номери серверів, що мають найвищу цінність.

Приклад вхідних та вихідних даних.
Приклад вхідних даних: Приклад вихідних даних:
5 4
3 1
3 2
4 3
5 3
1 2





Copyright MyCorp © 2017
Пошук
Календар
«  Вересень 2017  »
ПнВтСрЧтПтСбНд
    123
45678910
11121314151617
18192021222324
252627282930
Архів записів
Друзі сайту
Обдаровані діти

Хмельницькі олімпіади

НМЦ ІКТ і ДН

Портал ХОІППО