Задачи (2018/2019)
Задача 6а.
Да се напише програма за бързо циклично преместване на буквите в
дадена дума.
Вход:
На входа се задава дума (низ, съдържащ n букви от
латинската азбука) и на следващия ред - редица от m цели
числа k1, k2,
..., 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
---