НАЦИОНАЛЕН ПРОЛЕТЕН ТУРНИР ПО ИНФОРМАТИКА

ПЛОВДИВ, 27–28 МАЙ 2006

 

            Задача B1. Игра с топки

 

            Дадени са n топки, които са наредени в редица по права линия в един физкултурен салон, успоредно на една от стените. На тази стена са поставени m празни коша в редица, успоредна на редицата на топките. Всяка топка и всеки кош са оцветени с един от следните цветове:  rчервен, bсин, gзелен, wбял, pрозов, yжълт.

Играем следната игра. Вземаме последователно топки, в реда в който са подредени, отляво-надясно. Можем да върнем взета топка на същото място в редицата й, но не можем да вземем топка, която вече веднъж сме върнали, както и не можем да се връщаме назад по редицата от топки. Топка, която не връщаме, поставяме в кош от същия цвят, който е разположен по надясно от последния до момента пълен кош в редицата от кошове (ако сме в самото начало на играта, взета топка може да поставим в произволен кош от същия цвят).

Във всеки кош може да влезе най-много една топка. Целта на играта е да се вкарат максимален брой топки.

Напишете програма BALLS, която въвежда от стандартния вход два низа, съдържащи някои от буквите r, b, g, w, p, y. Всеки от низовете не е по-дълъг от 999 знака. Първият низ задава разположението на топките, а втория – на кошовете.

На стандартния изход програмата трябва да изведе едно цяло число, равно на максималния брой топки, които могат да се поставят в кошовете, съгласно описаните правила.

 

ПРИМЕР 1

ПРИМЕР 2

Вход

rrbgwgbpp

yppgwbpbp

 

Вход

ygbgygbgyby

ybygygygybyby

 

Изход

5

 

Изход

9

 

 

 

 


НАЦИОНАЛЕН ПРОЛЕТЕН ТУРНИР ПО ИНФОРМАТИКА

ПЛОВДИВ, 27–28 МАЙ 2006

 

Задача B2. Преговори с фропейците

 

            Като главен преговарящ за Земляните, днес Вие имате среща с фропейците – съюз на няколко свръх-цивилизации. Знаете, че от тази среща зависи цялото бъдеще на Земята, защото само приемането ни в техния съюз означава върховно благоденствие. Иначе ни чакат още доста хилядолетия на орбита в този забутан ъгъл на Млечния път...

            Изненадващо за Вас, Върховният преговарящ фропеец Óлене Дей Ви предлага “просто” решение: тъй като не е ясно дали и  доколко е напреднал разумът на Земята, ще играете една игра (двадесет пъти) по следните правила:

·         Фропеецът избира “случайно” две галактики и (след консултация с базата си данни) Ви съобщава по колко значими обекти (разбирайте, по-големи от човешки юмрук) има във всяка от тях. Означаваме данните съответно с A и B – това може наистина да са “космически” естествени числа, но не са с повече от 50 десетични цифри.

·         Вие пък имате право да изберете кой ще играе първия ход – Вие или фропеецът. Демократично, нали?

·         Ходовете следват алтернативно до края на играта.

·         Играчът, който е на ход, трябва да избере една от двете галактики и да “завладее” поне един свободен обект от нея. Нека е завладял X обекта. Преди да предостави ход на опонента си, той е длъжен за завладее и два пъти повече (2X) свободни обекти от другата галактика. Естествено, след тези действия броят на свободните обекти в първата от избраните галактики намалява с X, а в другата – с 2X.

·         Ако играчът, който е на ход, не може да го направи, като спазва горното правило, играта приключва с негова загуба.

            Тъй като няма ограничения за използването на компютърна техника (даже напротив – това е съществена част от изпита за интелигентност на всяка цивилизация), Вие решавате да напишете една програма PHROPE, с помощта на която да вземете двете първи решения: дали да искате първи ход и ако да – какъв да бъде той, с цел да спечелите играта. Не разчитайте на грешка на фропееца – той също има помощна (че и по-мощна) техника. И не забравяйте, че от Вашата игра зависи приемането ни във Фропейския съюз!

            От стандартния вход се въвежда един ред с естествените числа A и B, разделени с интервал. Това са същите онези (евентуално “космически”) числа от базата данни на фропейците. Запишете на стандартния изход един ред, който съдържа две неотрицателни цели числа, разделени с интервал. Ако предоставяте първия ход на фропееца, двете числа са нули. Иначе първото от тях (X) показва колко обекта да завладеете от галактиката, в която има A обекта, а второто (Y) – колко да завладеете от галактиката с B обекта. Съгласно правилата, трябва да е изпълнено или X=2Y, или Y=2X.

            Двадесетте тестови примера се оценяват по двойки – нула точки даже ако само единият от отговорите в двойката не е верен.

 

Пример 1. Вход

20 17

 

Изход

20 10

 

Пример 2. Вход

3 3

 

Изход

0 0

 

 

НАЦИОНАЛЕН ПРОЛЕТЕН ТУРНИР ПО ИНФОРМАТИКА

ПЛОВДИВ, 27–28 МАЙ 2006

 

Задача B3. Пътешествие.

 

            Като награда за първото място в поредния Пролетен турнир младият програмист Пешо получил награда – безплатно пътешестви в екзотична страна. Той трябвало да си избере два от N-те града на страната, номерирани с числата от 1 до N, а фирмата-спонсор да заплати пътуването от единия до другия град по най-късия път, свързващ тези два града. Пътната мрежа на страната се състои от M пътни отсечки, всяка от които свързва два различни града и дължините на тези отсечки са такива, че можем да ги считаме еднакво дълги. Това обаче не било първото пътуване на Пешо в тази страна и K от градовете той вече познавал добре. Затова много би искал така да избере маршрута, че да посети колкото може повече градове, които още не е посещавал. Напишете програма TRIP, която намира максмалния брой нови за Пешо градове, които той би могъл да посети при подходящ избор на началния и крайния град на пътешествието.

            Вход

            На първия ред на стандартния вход са зададени числата N, M  и K (5 £ N £ 1001, 2 £ K £ N/2), разделени с по един интервал. Всеки от следващите редове съдържа номерата на два града – краища на една пътна отсечка, разделени с интервал. На последния ред са зададени номерата на градовете, които Пешо вече е посещавал.

            Изход

            На единствения ред на стандартния изход пограмата трябва да изведе само едно число – максималния брой нови градове, които Пешо би могъл да посети при условията, поставени от фирмата спонсор.

 

            ПРИМЕР  

            Вход                                                   Изход

     6 7 3                     2

     1 2

     2 3

     1 4

     4 5

     5 3

     1 6

     6 3

     1 3 6