eolymp
bolt
Try our new interface for solving problems
Məsələlər

Вращение списка

Вращение списка

Задан массив целых чисел. Создайте Связный Список из этих чисел.

Реализуйте метод RotateRight, который вращает Список вправо на k позиций, где k - неотрицательное целое число.

Например, если List = 12345NULL и k = 2, то после вращения List = 45123NULL.

Напишите код согласно следующего интерфейса:

class Node

{

public:

int data;

Node *next;

Node() : next(NULL) {};

Node(int data, Node *next = NULL) : data(data), next(next) {};

};

class List

{

public:

Node *head, *tail;

List() : head(NULL), tail(NULL) {};

void AddToTail(int val); // Добавьте число val в конец Связного Списка

void RotateRight(int k) // Совершите вращение Связного Списка вправо на k позиций

void Print(void); // Выведите элементы Связного Списка

};

Вы можете создавать (использовать) по необходимости дополнительные методы.

Входные данные

Первая строка содержит число n (1n100). Вторая строка содержит n целых чисел. Каждая из следующих строк содержит одно число k (0k109).

Выходные данные

Для каждого значения k выведите в отдельной строке элементы Связного Списка после совершения его вращения вправо на k позиций. Выводить элементы списка следует используя метод Print.

Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
5
1 2 3 4 5
1
2
3
4
55
Çıxış verilənləri #1
5 1 2 3 4 
3 4 5 1 2 
5 1 2 3 4 
1 2 3 4 5 
1 2 3 4 5 
Müəllif Михаил Медведев
Mənbə Язык C++