Skip to content

Instantly share code, notes, and snippets.

@dukaev
Created November 8, 2015 20:43
Show Gist options
  • Save dukaev/51e017b12f2113a0536d to your computer and use it in GitHub Desktop.
Save dukaev/51e017b12f2113a0536d to your computer and use it in GitHub Desktop.
В этой задаче вы можете использовать векторы (в Java допустимы массивы и ArrayList-ы), циклы и операторы ветвления. Запрещается использовать массивы, многомерные массивы/векторы, вложенные циклы и функции стандартной библиотеки работы с контейнерами.
Массив a четной длины зашифровали следующим образом: разбили его на 2 части одинаковой длины (левую и правую), каждую из них циклически сдвинули вправо на p позиций, а затем весь массив сдвинули циклически вправо на q позиций. Вам задан зашифрованный массив, восстановите оригинальный.
Пример, поясняющий циклический сдвиг вправо: если циклически сдвинуть вправо на 3 массив [4,5,3,6,1,7], то получится массив [6,1,7,4,5,3].
Входные данные
В первой строке задано три целых числа через пробел: n, p, q (1 ≤ n ≤ 2 · 105, 1 ≤ p ≤ n/2, 1 ≤ q ≤ n) — количество элементов в массиве и величины циклических сдвигов. Гарантируется, что n - четное число.
В следующей строке задано n целых чисел через пробел: a0, a1,..., an-1 (1 ≤ ai ≤ 109) — элементы зашифрованного массива.
Выходные данные
В одной строке выведите n чисел через пробел — расшифрованный массив.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment