Сайт підготовки до олімпіади з інформатики

програмування в С++

Школа олімпійського резерву з інформатики
Задачі для самостійного опрацювання 2011-2012 н.р (рівень 1) PDF Печать E-mail
Добавил(а) Administrator   
07.12.11 12:59
Задачі для самостійного опрацювання 2011-2012 н.р (рівень 1)
Завдання розв'язати до 23.12.2011 та  надіслати на електронну адресу Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра.
Задача1 Скільки коштує корок? (5 балів)
Пляшка разом з корком коштує a грн b коп. Відомо, що пляшка дорожча за корок на a грн. Скільки коштує корок?
Вхідний файл: INPUT.DAT
Вхідний файл: OUTPUT.SOL
Задача 2. Записати число (5 балів)
Введене двоцифрове число записати в зворотному порядку.(5 балів)
Вхідний файл: INPUT.DAT
Вхідний файл: OUTPUT.SOL
Задача 3. Дата (10 балів)
Даний час  (години,  хвилини,  секунди)  -  три  цілих числа. Скласти  програму  визначення  часу  через  10 секунд.
Вхідний файл: INPUT.DAT
Вхідний файл: OUTPUT.SOL
Задача 4. Час (10 балів)
Трійка чисел (T1,M1,C1) задає  стартовий  час,  а  трійка (T2,M2,C2) - фінішний час учасника лижної гонки на 30 км (години, хвилини, секунди). Перевірити коректність даних  і знайти результат учасника.
Вхідний файл: INPUT.DAT
Вхідний файл: OUTPUT.SOL
Задача 5. Паліндром (15 балів)
Вивести всі числа паліндроми до 10000. (Наприклад 2112, читається однаково зліва направо і навпаки).
Вхідний файл: INPUT.DAT
Вхідний файл: OUTPUT.SOL
Задача 6. Досконале число (15 балів)
Знайти досконалі числа на проміжну [1..n].
6=1+2+3 (досконале - рівне сумі всіх своїх дільників, крім останнього)
Вхідний файл: INPUT.DAT
Вхідний файл: OUTPUT.SOL
Задача 7. Кількість елементів(20 балів)
Дано таблиця  а[1],  а[2],...,a[1000] дійсних чисел.  Визначити    максимальну    кількість  додатних елементів, що йдуть підряд і не  перериваються ні нулями, ні від'ємними елементами.
Вхідний файл: INPUT.DAT
Вхідний файл: OUTPUT.SOL
Задача 8. Надпросте число (20 балів)
Натуральне  число,  записане  в  десятковій  системі числення,  називається  надпростим,  якщо   воно   залишається простим  при  будь-якій  перестановці  своїх  цифр.  Визначити чи є дане число надпростим.
Вхідний файл: INPUT.DAT
Вхідний файл: OUTPUT.SOL
Загальна сума 100 балів.
Зауваження. Реалізуйте задачі з використанням роботи з файлами.

Додаткова задача
Задача 9. Бики і корови.
У гру "Мастермайнд" ("Бики і корови") грають  так:  одна людина задумує чотиризначне число, в якому ніякі дві цифри не співпадають; інший гравець називає чотиризначні числа з попарно неспівпадаючими цифрами; перший гравець для кожного з цих чисел повідомляє другому загальна кількість його  цифр,  які є в задуманому числі, і кількість співпадаючих цифр в однакових розрядах названого і задуманого числа. Другий  гравець повинен вгадати задумане число як можна за меншу  кількість питань. Написати програму, що грає:
а) за  гравця, який задумав число;
б) за відгадуючого гравця.

 
3. Апаратне та програмне забезпечення PDF Печать E-mail
Добавил(а) Administrator   
03.10.12 08:37

3. Апаратне та програмне забезпечення

Обидва тури олімпіади доцільно проводити з використанням комп'ютеризованих робочих місць з операційними системами Windows 2000/XP/Vista. На комп'ютері має бути встановлений файловий менеджер (наприклад, The FAR manager, Total Commander, тощо).

Учасникам олімпіади можуть вибирати мову програмування с заданого переліку: Pascal, C або C++. Система програмування Free Pascal 2.0 (чи новішої версії), GCC 4.2 (чи новішої версії), Turbo Delphi Explorer, Visual C++ 2008 Express). Такі компілятори будуть використані на IV-му етапі.

Програми, що створюються учасниками повинні відповідати стандарту мов програмування на яких вони написані, мають використовувати стандартні бібліотеки та не реалізовувати графічний інтерфейс, не використовувати системні ресурси, сторонні файли та бібіотеки які не передбачені завданням. Дана вимога стосується всіх доступних середовищ програмування в тому числі Visual Studio, Delphi, Turbo Delphi Explorer, тощо.

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

Користуватися власною літературою, друкованими або рукописними матеріалами, засобами комунікації (Інтернет, мобільні телефони і таке інше) заборонено.


 
Задачі ІІІ етапу Всеукраїнської олімпіади з інформатики PDF Печать E-mail
Добавил(а) Administrator   
06.02.13 14:22

турнір за задачами обласної олімпіади є тридцять зареєстрованих користувачів user400 ... user430 паролі числа 400 ... 430 відповідно


Завдання 1 туру ІІІ (обласного) етапу Всеукраїнської олімпіади з інформатики

А  - Неуважність

Ім'я файлу, який містить вхідні дані:

text.in

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

text.out

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

100 мс

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

128 M

Степан вдало пройшов співбесіду і ось уже як чотири місяці працює на одній із самих престижних ІТ компаній. Прийшов час здавати проект менеджеру і Степан, як істинний студент, все виконує у останню ніч перед здачею. Набирає текст Степан звичайно дуже швидко, але неуважно. От і цього разу останню частину тексту він набрав не звернувши уваги, що випадково натиснув клавішу caps lock. Таким чином великі букви були набрані маленькими, а маленькі великими. Інші символи він набрав вірно. Степан настільки стомився, що немає сил виправити помилки, і він вирішив кілька годин поспати. Допоможіть Степану, доки він спить, напишіть програму, яка виправляє неуважно набраний текст.

Формат вхідних даних: перший рядок вхідного файлу містить неуважно набраний Степаном текст, який містить не більше 500 символів.

Формат вихідних даних: вихідний файл має містити виправлений текст.

Приклади

Вхідні дані розміщені у файлі text.in

Результат роботи знаходиться у файлі text.out

sCHOOL
School

B - День святого Валентина

Ім'я файлу, який містить вхідні дані:

holy.in

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

holy.out

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

500 мс

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

128 M

Скоро день святого Валентина і, Степану як великому прихильнику даного свята, доручили вибрати кульки для прикраси зали. Профорг університету, де навчається Степан, веде строгий перелік усіх кульок, згідно якому в наявності є N однокольорових (що поробиш – бідні студенти) кульок, діаметр i-ї кульки (1 ≤ i ≤ N) дорівнює Di міліметрів. Згідно новим вимогам профкому, залу необхідно прикрасити не менше ніж K кульками. Оскільки профоргу університету не подобається свято закоханих, то вона ввела своє поняття – так званий показник некрасивості – рівний максимально можливому числу Di – Dj при 1 ≤ i, j ≤ M, де M – кількість кульок для зали, а Di – їх діаметр. Допоможіть Степану із N іграшок вибрати М (M ≥ K) так, щоб для вибраних M кульок показник некрасивості був мінімальним.

Формат вхідних даних: перший рядок вхідного файлу містить два натуральних числа N (2 ≤ N ≤ 100 000) і K (2 ≤ K ≤ N) відповідно. Другий рядок містить N цілих чисел Di (1 ≤ Di ≤ 109) – діаметр i-ї кульки.

Формат вихідних даних: вихідний файл має містити значення показника некрасивості, вибраних M кульок.

Пояснення: Приклад 1 - Існує кілька різних варіантів вибору. Степан може вибрати, наприклад, 6 кульок: 3, 5, 6, 4, 7 і 8
Приклад 2- Степан вибере 4 кульки: 1, 5, 3 і 6.

Приклади

Вхідні дані розміщені у файлі holy.in

Результат роботи знаходиться у файлі holy.out

8 5
10 20 10 20 10 10 20 20
10
6 4
21 12 17 28 16 21
5


C - Степан і Пари

Ім'я файлу, який містить вхідні дані:

pair.in

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

pair.out

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

1 с

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

128 M

Останнім часом Степан дуже цікавиться парами чисел, а крім пар чисел його цікавить найбільший спільний дільник пари чисел, позначимо його як НСД(x, y). Зараз у Степана є ціле число n і його цікавить така інформація: скільки існує пар цілих чисел (i,j), таких що 1 ≤ i, j ≤ n і виконується рівність i = НСД(i, j). Допоможіть йому у вирішенні нелегкої задачі.

Формат вхідних даних: у першому рядку дано ціле число n (1 ≤ n ≤ 106).

Формат вихідних даних: єдиний рядок має містити відповідь на задачу.

Зауваження: У першому прикладі підходящою парою є пара (1, 1), так як НСД(1, 1) = 1.
У другому прикладі підходять 8 пар чисел: (1, 1), (1, 2), (1, 3), (1, 4), (2, 2), (2, 4), (3, 3), (4, 4).

Приклади

Вхідні дані розміщені у файлі pair.in

Результат роботи знаходиться у файлі pair.out

1
1
4
8
10
27

D - Спадок Степана

Ім'я файлу, який містить вхідні дані:

legacy.in

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

legacy.out

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

2 с

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

128 M

Степан отримав у спадок від дідуся стоянку з N місць, пронумерованих від 1 до N. Стоянка розбита на дві частини. Перші M місць знаходяться з лівого боку, а інші N - M місць з правого. Кожного дня N жителів цього району паркують свої автомобілі на стоянці Степана. Відомо, що перший житель приходить раніше усіх, потім другий, і так далі, тобто k-й приходить k-м. Також для кожного жителя i відомо, скільки він буде платити, якщо його машину поставлять на j-е місце. Степан придбав розподільник місць, який кожному автомобілю, що приїздить вказує, на який бік паркуватись, після чого автомобіль паркується на мінімальне за номером вільне місце відповідного боку. При цьому Степан вирішив зекономити і не придбав програмне забезпечення для розподільника, тому він працює не оптимально. Степан просить Вас написати програму для цього розподільника, яка максимізує доходи Степана.

Формат вхідних даних: у першому рядку записані два цілих числа N (2 ≤ N ≤ 1000) і M (1 ≤ M < N) – загальна кількість місць на стоянці і кількість місць з лівого боку відповідно. У кожному із наступних N рядків записано по N цілих додатних чисел. j-е число i-го рядка означає, скільки буде платити i-ий житель за місце з номером j на цій стоянці. Кожне з цих чисел не перевищує 106.

Формат вихідних даних: єдиний рядок має містити одне число – максимальний прибуток стоянки.

Зауваження: Не менш чим у 50% тестів N ≤ 30.

Приклади

Вхідні дані розміщені у файлі legacy.in

Результат роботи знаходиться у файлі legacy.out

2 1
3 2
6 4
8
4 1
4 3 1 1
3 1 1 1
1 1 4 1
1 1 1 2
12

E- Конфетна проблема Степана

Ім'я файлу, який містить вхідні дані:

problem.in

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

problem.out

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

500 мс

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

128 M

Степан закохався і вирішив привернути увагу дівчини великою коробкою цукерок. За порадою друзів він поїхав на саму відому кондитерську фабрику ShenRo і дізнався, що великі коробки цукерок мають трикутну форму. Цукерки в цих коробках розташовуються у кілька рядів. У першому ряду знаходиться одна цукерка, у другому – дві, у третьому – три цукерки і так далі. На фабриці випускаються коробки цукерок з любим числом рядів у межах від 1 до N. Степан хоче купити одну із таких коробок. Але є одна проблема: його дівчина засмутиться, якщо кількість цукерок у коробці не буде ділитись націло на M, тому що у цьому випадку комусь із друзів дівчини дістанеться більше цукерок, чим іншим, або ж якісь цукерки залишаться лишніми. Тому Степан вирішив, що число цукерок у коробці має обов’язково ділитись націло на M.

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

Вам необхідно по заданих числах N і M знайти число способів вибору коробки цукерок із множини коробок з кількістю рядів від 1 до N. Способи вважаються різними, якщо їм відповідають коробки з різною кількістю рядів цукерок.

Формат вхідних даних: перший рядок вхідного файлу містить два цілих числа N - максимальна кількість рядів цукерок у коробці і M – кількість друзів дівчини Степана (1 ≤ N, M ≤ 2*109) відповідно.

Формат вихідних даних: вихідний файл має містити одне ціле число - кількість різних способів вибору коробки цукерок.

Оцінювання: N, M ≤ 1000 – не менше 35 балів, N, M ≤ 105 – не менше 55 балів.

Приклади

Вхідні дані розміщені у файлі problem.in

Результат роботи знаходиться у файлі problem.out

20 10
4
53 199
0
5705 145
157

 

Завдання 2 туру ІІІ (обласного) етапу Всеукраїнської олімпіади з інформатики

А - Арифметика

Ім'я файлу, який містить вхідні дані:

count.in

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

count.out

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

100 мс

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

128 M

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

Формат вхідних даних: перший рядок вхідного файлу містить одне ціле число N (1 ≤ N ≤ 101000), записане Мишком.

Формат вихідних даних: вихідний файл має містити одне число – кількість різних цифр у числі.

Приклади

Вхідні дані розміщені у файлі count.in

Результат роботи знаходиться у файлі count.out

1233
3

B- Степан і сірники

Ім'я файлу, який містить вхідні дані:

matches.in

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

matches.out

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

100 мс

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

128 M

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

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

Формат вхідних даних: перший рядок вхідного файлу містить одне ціле число N (1 ≤ N ≤ 100), яке представляє кількість наборів. Далі йдуть N рядків, кожен з яких містить у собі опис набору сірників - дванадцять цілих додатніх чисел не перевищують 109.

Формат вихідних даних: вихідний файл має містити N рядків. Для кожного набору сірників виведіть “yes”, якщо з нього можливо склеїти каркас паралелепіпеда, і “no” в іншому випадку.

Приклади

Вхідні дані розміщені у файлі matches.in

Результат роботи знаходиться у файлі matches.out

2
1 1 1 1 2 2 2 2 3 3 3 3
1 1 1 1 2 2 2 2 3 3 3 4
yes
no


C - Задача від Степана

Ім'я файлу, який містить вхідні дані:

task.in

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

task.out

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

750 мс

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

128 M

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

Наприклад, прямокутник зі сторонами 1 і 10 можна повністю накрити прямокутником 10 і 3, але не можна накрити прямокутником зі сторонами 9 і 9. Прямокутники зі сторонами 10 і 3, а також зі сторонами 9 і 9 накрити не можна, відповідно в наборі із цих трьох прямокутників тільки один маленький. Напишіть програму, яка вирішить згадану Степаном задачу – визначить кількість маленьких прямокутників у даному наборі.

Формат вхідних даних: перший рядок вхідного файлу містить одне ціле число N (2 ≤ N ≤ 200000). У кожному з наступних N рядків міститься два цілих додатних числа – розміри одного прямокутника. Усі розміри не перевищують 1000000. Серед даних прямокутників немає однакових.

Формат вихідних даних: вихідний файл має містити одне ціле число - кількість маленьких прямокутників у даному наборі.

Приклади

Вхідні дані розміщені у файлі task.in

Результат роботи знаходиться у файлі task.out

3
1 10
9 9
10 3
1
4
1 7
2 6
3 5
4 4
0

D - Штрафи

Ім'я файлу, який містить вхідні дані:

penalty.in

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

penalty.out

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

500 мс

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

128 M

Степан нещодавно купив автомобіль, але водійські права ще не отримав. В зв’язку з цим він не має права на ньому їздити. Але його дружина вже спланувала вихідні, і поїздка до столиці входить в ці плани. Недовго думаючи, Степан знайшов вихід. Відомо, що ДАІ стоять не на всіх дорогах, а лише на тих, які обминути не можна, тому що так вони спіймають більше правопорушників. Відомо, що в країні Степана N міст, і вони з’єднані M дорогами. Зрозуміло, ніякі дві дороги не з’єднують одну й ту саму пару міст (в країні ж розумні люди працюють). Степан живе в місті А, а столиця знаходиться в місті 1. За відсутність водійських прав штраф складає 1000 карбованців. Скажіть, скільки в нього має бути при собі грошей, щоб він міг виплатити всі штрафи.

Формат вхідних даних: Перший рядок містить два числа N, M (2 ≤ N ≤ 105 , 1 ≤ M ≤ 105). Інші М рядків містять два числа Xi і Yi, які описують дорогу між містом Xi і містом Yi. В останньому рядку написано число A (2 ≤ A ≤ N) – місто в якому живе Степан.

Формат вихідних даних: Виведіть в одному рядку єдине число – кількість карбованців які Степан має мати при собі.

Приклади

Вхідні дані розміщені у файлі penalty.in

Результат роботи знаходиться у файлі penalty.out

6 7
1 2 
2 3
3 1
3 4
4 5
4 6
5 6
6
1000

E - Ремонт

Ім'я файлу, який містить вхідні дані:

repair.in

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

repair.out

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

1 с

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

64 M

Степан придбав нову квартиру і до приїзду батьків вирішив поклеїти шпалери. На перший погляд все просто, але, коли він приступив до роботи, виявилась невелика проблема – необхідно вирівнювати малюнки на сусідніх полосах шпалер. Як визнаний програміст, Степан сформулював задачу таким чином. Кожну полосу шпалер можна описати її частиною – прямокутником довжиною N і шириною M (щоб отримати повну полосу, цей прямокутник можна багато разів домалювати до самого себе справа і зліва). Для простоти подумки поділимо цей прямокутник на рівні клітинки так, щоб утворилось N рядків і М стовпців. Щоб було ще простіше, рисунок на шпалерах позначимо символами ”.” і ”*” (крапка і зірочка), по одному символу в кожній клітинці.

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

Формат вхідних даних: перший рядок вхідного файлу містить два цілих числа N і M(1 ≤ N ≤ 20, 1 ≤ M ≤ 100000). Наступні N рядків містять по М символів кожна – опис першої полоси шпалер. Наступні N рядків містять по М символів кожна – опис другої полоси шпалер. Кожен рядок опису шпалер містить тільки символи ”.” і ”*”.

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

Приклади

Вхідні дані розміщені у файлі repair.in

Результат роботи знаходиться у файлі repair.out

2 5
.*.*.
*.*.*
*.*..
.*.**
1
1 5
***..
*..**
2

 
Готуємось до олімпіадаи з інформатики - блок задач 1 PDF Печать E-mail
Добавил(а) Гісь Ігор Володимирович   
03.10.12 08:48

Задача 1. «Одиниці»

Умова. Дано ціле число I записане в десятковій системі числення.

Завдання. Написати програму ONE.*, яка порахує кількість одиниць в його двійковому записі.

Вхідні дані. Вхідний текстовий файл ONE.DAT містить в єдиному число I.

Вихідні дані. Вихідний текстовий файл ONE.SOL містить єдине ціле число - кількість одиниць.

 

Приклади файлів

 

ONE.DAT

ONE.SOL

7

3

 

 

 

Задача 2. «Нафтові плями»

Умова. Після аварії на морській нафтовій свердловині в океан вилилося багато нафти. Вона розтеклася по воді, після чого утворилася певна кількість нафтових плям. Для ліквідації наслідків аварії було створено штаб з координації дій. Співробітники штабу зберігають інформацію про плями в комп'ютері у вигляді матриці розмірністю M x N. Комірка матриці містить 0, якщо нафтова пляма в цих координатах відсутня та 1, якщо наявна (2 ≤ M, N ≤ 100). У матриці комірки плям не можуть дотикатися одна до одної ні сторонами, ні кутами.

Приклади файлів

1

0

1

0

0

0

0

1

1

0

1

0

0

0

0

1

0

0

0

1

1

0

1

0

1

OIL.DAT

OIL.SOL

5 5

1 0 1 0 0

0 0 1 1 0

1 0 0 0 0

1 0 0 0 1

1 0 1 0 1

5

1 2

2 1

3 2

 

 

 

 

 

 

 

 

Завдання. Для полегшення ліквідації наслідків аварії потрібно написати програму OIL.*, яка знаходитиме загальну кількість плям та кількість плям з однаковою площею.

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

Вихідні дані. Вихідний текстовий файл OIL.SOL містить у першому рядку ціле число k - загальну кількість плям, далі у кожному з рядів міститься по два числа, перше - площа плями, друге - їх кількість. Дані посортувати по площах в порядку зростання.

 

Завдання 3. «Ламана»

Ім'я файлу програми: LAMAN.*

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

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

Максимальний час роботи на одному тесті: 5с

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

-          починати з лівого нижнього кута, який знаходиться в початку координат;

-           можна пересуватися вздовж цих прямих;

-           при проходженні через точку  завжди змінювати напрям швидкості на перпендикулярний.

Знайти мінімальну довжину шляху  до верхньої правої точки.

Технічні умови. Програма Laman читає з файлу розміри шоколадної плитки (цілі числа, не більші 10^100000). Числа розділено пропуском. Програма виводить на екран  єдине число - шукану величину.

Приклади файлів

LAMAN.DAT

LAMAN.SOL

2 3

5


 

 

 

Задача 4. Сума дільників

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

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

Нехай х - натуральне число. Назвемо число y його дільником, якщо 1 ≤ у ≤ х і залишок від ділення x на y дорівнює нулю.

Задано число х. Знайдіть суму його дільників.

Формат вхідних даних: перший рядок вхідного файлу містить одне ціле число х (1 ≤ х ≤ 1018). Усі прості дільники числа х не перевищують 1000.

Формат вихідних даних: єдиний рядок вихідного файлу має містити одне число - суму дільників заданого числа х.

Приклад вхідних і вихідних даних:

sum.in

sum.out

12

28

239

240

 

 

Задача 5. Куфічний дирхем

Вхідний файл

dirkhem.in

Вихідний файл

dirkhem.out

Віталій Вікторович завжди був комунікабельною людиною і, відповідно, мав багато друзів. Одного вечора, переглядаючи свою електрону пошту, він був приємно здивований запрошенням на ювілей свого студентського друга Шаміля Ігоровича і одразу ж прийняв позитивне рішення.

Дізнавшись, що Шаміль Ігорович вже багато років захоплюється колекціонуванням старовинних монет і полює за середньовічною срібною монетою з назвою «Куфічний дирхем», Віталій Вікторович вирішив неодмінно подарувати йому цю монету.

Скориставшись Інтернетом, Віталій Вікторович визначив всі K міст, де можна придбати дану монету, а також її вартість у кожному із цих міст. Країна, у якій живуть Віталій Вікторович і Шаміль Ігорович, налічує N міст і M двосторонніх автомобільних доріг, кожна з яких з'єднує два різних міста держави. Відомо, що Віталій Вікторович живе в місті A, а Шаміль Ігорович - в місті B. Для кожної дороги Віталій Вікторович обчислив вартість проїзду з урахуванням технічних характеристик свого автомобіля. З метою економії Віталій Вікторович вирішив придбати монету по дорозі із міста A у місто B. Іншими словами, маршрут руху Віталія Вікторовича повинен проходити через місто, у якому він вирішить придбати монету. Однак виявилось, що їхати через місто, у якому монета коштує менш за все, не завжди вигідно, тому що вигравши у вартості монети, можна втратити набагато більше у вартості дороги і навпаки...

Ваше завдання - допомогти Віталію Вікторовичу вибрати оптимальний маршрут і місто Z, де слід придбати монету. Маршрут повинен починатися в місті A, закінчуватися в місті B і проходити через місто Z. Вартість даного маршруту повинна бути мінімальною. Під вартістю маршруту будемо розуміти суму кількості грошей, витрачених на дорогу і вартість монети в місті Z. Нижче наведено приклад для N = 5, M = 7, A = 1, B = 4.

 

 

mal02_10_2012

Рисунок 1.Візуалізація другого прикладу.

Для даного приклада K = 4, вартість монети позначено зверху над кругом, що позначає місто.

Оптимальний маршрут виділено червоним кольором. Для даного прикладу Z = 3.

Вхідні дані:

Перший рядок вхідного файлу містить три цілих числа N, M і K (2 ≤ N ≤ 5000; 1 ≤ M ≤ 100000; 1 ≤ K ≤ N), де N - кількість міст в країні, M - кількість доріг, а K - кількість міст, у яких продається шукана монета. Будемо вважати, що всі міста пронумеровані цілими числами від 1 до N.

Другий рядок вхідного файлу містить два цілих числа A і B (1 ≤ A, B ≤ N; A ≠ B), де A - номер міста, в якому живе Віталій Вікторович, а B - номер міста, в якому живе Шаміль Ігорович.

Третій рядок містить K пар цілих чисел Vi і Сi( 1 ≤ Vi ≤ N; 1 ≤ Сi ≤ 109), де Vi - це номер міста, у якому можна придбати потрібну монету, а Сi - вартість монети у відповідному місті. Відомо, що Vi ≠ Vj, якщо i ≠ j. Всі числа у рядку розділені одиночними пробілами.

Кожен наступний із M рядків містить три числа Xi, Yi, Si (1 ≤ Xi, Yi ≤ N; Xi ≠ Yi; 1 ≤ Si ≤ 105), де Xi і Yi - номери міст, з'єднаних двосторонньою дорогою, а Si - вартість проїзду по даній дорозі. Не існує двох різних доріг, що з'єднують одні і ті ж міста.

Вихідні дані

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

Приклад вхідних та вихідних даних:

dirkhem.in

dirkhem.out

Маршрут, город Z

3 3 2

3 1

1 20 2 5

1 2 7

1 3 5

2 3 8

20

{3, 2, 1}

Z = 2

 

5 7 4

1 4

1 100 4 50 3 10 2 55

1 2 10

5 3 42

1 3 30

2 4 50

3 4 70

2 5 24

4 5 21

103

{1, 3, 5, 4}

Z = 3

 

8 7 1

1 6

5 187

1 8 32

8 6 39

5 4 51

1 4 101

2 4 17

3 7 46

2 8 23

440

{1, 8, 2, 4, 5, 4, 2, 8, 6}

Z = 5

 

 

Последнее обновление 03.10.12 08:56
 
Готуємось до олімпіади PDF Печать E-mail
Добавил(а) Administrator   
11.06.13 11:32

Працюйте в системі http://www.e-olimp.com

Отримуйте високий рейтинг

Розв'язуйте задачі з тем

"Геометрія", "Графи", "Динамічне програмування"

Слідкуйте за новинами !!!

 

 


Страница 10 из 43

Статистика

Пользователей : 269
Статей : 225
Просмотрено статей : 127705

Вход/Регистрация

Нет