/*
Рабочий пример реализации алгоритма сдвига "Переворотами" на С++
Автор кода: ученик средней школы номер 3 им Абая
Козырев Богдан, мое резюме см. http://t800.kvkozyrev.org/rezyume.html
*/
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
// объявляем переменные
string line;
int i;
cout << "Введите строку : ";
getline(cin,line);
cout << "Введите сдвиг влево: ";
cin >> i;
// проверка на случай если сдвиг больше длины строки
if (i > line.length()) i = i % line.length();
// используем встроенную в C++ для реверса std::string
reverse(line.begin(), line.begin()+i);
cout <<"Строка на первом шаге : " << line << endl;
reverse(line.begin()+i,line.end());
cout <<"Строка на втором шаге: " << line << endl;
reverse(line.begin(), line.end());
cout <<"Строка на последнем шаге : " << line << endl;
return 0;
}