Задачи (2018/2019)

Задача 6а.
Да се напише програма за бързо циклично преместване на буквите в дадена дума.

Вход:
На входа се задава дума (низ, съдържащ n букви от латинската азбука) и на следващия ред - редица от m цели числа  k1k2, ..., km - брой на исканите циклични премествания на буквите в думата. Входът съдържа N примери.

Изход:

За всяко циклично преместване на нов ред се отпечатва началото (10 букви) на получената дума. Ако думата е по-къса от 10 букви, да се отпечати цялата.

Ограничения:
 0 < n < 109
 0 < m < 100
 0 <= ki < 1010, i = 1, 2, ..., m 
0 < N < 20

Пример:
abracadabra
4 1 0
Floccinaucinihilipilification
10 20

Решение на примера:
cadabraabr
bracadabra

abracadabr
inihilipil
ificationF


Забележка: "Циклично преместване на k позиции елементите на масив m от n елемента" означава k пъти да преместим първия елемент от първо на последно място. Затова няма ограничение k < n, т.е. програмата трябва да работи и в случай k >= n.

https://www.hackerrank.com/contests/cscb300-2018-t01/challenges

Задача 6b.
Да се намери мажорантът на множество от низове.
Дефиниция: Нека е дадено n-елементно мултимножество (т.е. множество, в което се допуска повторение на елементи). Ще казваме, че даден елемент на множеството е негов мажорант, ако се среща повече от n/2 пъти.

Вход:
На входа се задава числото n (1 < n < 105) - брой на елементите на множеството и стойностите на самите елементи. Входът съдържа много примери. Низовете не съдържат интервали.

Изход:
За всеки пример на отделен ред се отпечатва низа, мажорант на множеството или  "---", ако множеството няма мажорант.

Пример:
6 abc abc aaaa bbbb abc abc
12
qwerty a a a a a qwerty qwerty a a a a
2 A ZZZ


Решение на примера:
abc
a
---