Задача D1. ТРИЪГЪЛНИЦИ

 

В тази задача ще разглеждаме текстове, оформени като “равностранни” триъгълници, съставени от нули и единици, като първите ще наричаме 0-триъгълници, а вторите – 1-триъгълници. Всеки триъгълник има дължина на страната, определена от някакво цяло положително число N, по-голямо или равно на три и не по-голямо от 20. Първият ред на триъгълника се състои от една единствена цифра  (0 или 1, в зависимост от вида му), вторият ред – от две цифри от съответния вид, разделени с един интервал, който е точно под цифрата от първия ред. Третият ред се състои от три цифри от съответния вид, разделени с по един интервал, като интервалите са точно под цифрите от втория ред и т.н., а последният ред е съставен от N цифри от съответния вид, разделени с по един интервал. 0-триъгълниците се изобразяват изправени – първият ред (с една цифра) отгоре, а последния ред (с N цифри отдолу), докато 1-триъгълниците се изобразяват обърнати – редът с една цифра е отдолу, а този с N цифри – отгоре. Задачата е да направите програма TREE.EXE, която по зададени цели положителни N и M отпечатва следната конструкция: два 0-триъгълника с дължина на страните N са долепени един до друг в основите си (страните с по N цифри са една до друга, разделени с един интервал), а  1-триъгълник със страна M e спуснат в образувалото се между двата 0-триъгълника пространство (виж примерите).

Програмата трябва да прочете числата N и M от клавиатурата (стандартния вход), а да изведе резултата на екрана (стандартния изход), като най-лявата цифра на конструкцията трябва да бъде в първа позиция на съответния ред на екрана.

 

ПРИМЕР 1

Вход

5 7

Изход

   1 1 1 1 1 1 1

    1 1 1 1 1 1

     1 1 1 1 1

    0 1 1 1 1 0

   0 0 1 1 1 0 0

  0 0 0 1 1 0 0 0

 0 0 0 0 1 0 0 0 0

0 0 0 0 0 0 0 0 0 0

ПРИМЕР 2   

Вход

5 3

Изход

    0         0

   0 0 1 1 1 0 0

  0 0 0 1 1 0 0 0

 0 0 0 0 1 0 0 0 0

0 0 0 0 0 0 0 0 0 0

 

 

 

            Задача D2. АРТУР

 

Рицарите на крал Артур са седнали на кръглата маса. Пред всеки има купчинка, съдържаща няколко ореха. По команда на краля, всеки рицар, едновременно с останалите, взема половината от орехите пред себе си и ги слага пред стоящия отляво (ако броят на орехите е нечетен, взема толкова орехи, че броят им да е равен на цялата част на числото, изразяващо половината). Кралят повтаря многократно същата команда, като желае да настъпи момент, когато всичките купчинки от орехи ще съдържат по равен брой.

 

Напишете програма ARTUR.EXE, която въвежда броя на рицарите и началния брой на орехите пред всеки от тях, зададени при обхождане на масата по посока на часовниковата стрелка. Тези числа се въвеждат от един ред на стандартния вход и са разделени с по един интервал. Броят на рицарите не е по-голям от 20, а общият брой на орехите не надминава 1000.

 

Програмата трябва да изведе на стандартния изход най-малкия брой команди, след които се е изпълнило желанието на краля. Ако желанието на краля не може да се изпълни, програмата трябва да изведе 0. Кралят може да даде най-много 10 000 команди.

 

 

ПРИМЕР 1                                                         ПРИМЕР 2

 

Вход                                                                           Вход

5 2 1 3 1 18                   5 2 1 3 1 17

 

Изход                                                                          Изход

12                             0

 

 


 

 

 

            Задача D3. ДРОБИ

 

Напишете програма FRAC.EXE, която събира обикновени дроби.

От един ред на стандартния вход се въвеждат 4 естествени числа,  разделени с по един интервал. Тези числа са по-малки от 1000 и представляват, съответно, числителя и знаменателя на едната и на другата дроб. Въвежданите дроби не са непременно правилни, нито пък несъкратими.

Програмата трябва да изведе на стандартния изход сбора на двете дроби.

Ако сборът е цяло число, се извежда само това число. Ако сборът е число по-малко от 1, се извеждат числителят и знаменателят на резултата, разделени с интервал. Ако сборът е число, по-голямо от 1, се извеждат три числа, разделени с интервали, които са цялата част, следвана от числителя на дробната част и накрая знаменателя на дробната част. Задължително дробната част на резултата трябва да бъде несъкратима дроб.

 

ПРИМЕР 1                                      ПРИМЕР 2                                      ПРИМЕР 3

 

Вход                                                   Вход                                                   Вход

7 3 2 3               2 3 3 36              3 4 4 7

 

Изход                                                  Изход                                                  Изход

3                    3 4                  1 9 28