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

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

 

Задача D1. Пръчки

 

            Разполагаме с неограничено количество от два вида дървени пръчки. Пръчките от  единия вид са с дължина 1 метър, а от другия – с дължина 2 метра. Пръчките от всеки вид са неразличими помежду си. Вземаме няколко от тези пръчки и ги нареждаме плътно една след друга по права линия, така че да образуват редица с обща дължина от n метра. По колко различни начини може да се направи това нареждане?

 

            Напишете програма STICKS, която въвежда цялото положително число n от стандартния вход (0 < n < 30) и извежда резултата на стандартния изход.

 

            Пример: Вход:

            4

 

            Изход:

            5


 

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

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

 

Задача D2. Нули

 

            Напишете програма ZERO, която при зададено цяло положително число N (N < 50000) намира най-дясната ненулева цифра и броя на нулите след нея на числото N! = 1 . 2 . 3. ... . N.

 

Вход: Програмата прочита от стандартния вход числото N.

 

Изход: Програмата извежда на стандартния изход един ред, съдържащ две числа, разделени с един интервал:  най-дясната ненулева цифра на N! и броя на нулите след нея.

 

Пример:         Вход               Изход

                        12                   6  2

 

Пояснение:  12! = 479001600.


 

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

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

 

Задача D3. Породени редици

 

            Пред учените от Магаданския университет на Откривателите, Мислителите и Гадателите (ОМГ) възникнал следният проблем: Даденo е множество от M (2 ≤  М ≤  2752006) цели числа по-големи от 0 и по-малки от 52006. От него могат да се “пораждат” различни редици. Учените разглеждали само редици, които съдържат точно N (2 ≤ N ≤ 52006) елемента, подредени в нарастващ ред и такива, че разликата между всеки два съседни елемента в редицата е винаги K (0 < K < N). Учените се интересуват какъв е броят на различните редици, които могат да се “породят” от даденото множество.

            Помогнете им като съставите програма SEQ, която по зададено множество и числа N и K, намира броя на различните “породени” от него редици, такива че да удовлетворяват горното условие.

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

 

Примерен вход:

9 2 2

5 2 7 1 3 3 4 5 1

 

Примерен изход:

4

 

Обяснение: различните редици с дължина 2 и разлика 2, “породени” от зададеното множество са:

 

1 3

2 4

3 5

5 7