Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Минимальный сдвиг

(Время: 1 сек. Память: 16 Мб Сложность: 61%)

Циклическим сдвигом строки s называется строка sk+1sk+2…sns1s2…sk для некоторого k (0 ≤ k < n), где n – длина строки s.

Для заданной строки требуется определить ее лексикографически минимальный сдвиг, т.е. необходимо найти среди всех возможных циклических сдвигов строки тот, который идет первым в алфавитном порядке.

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

В единственной строке входного файла INPUT.TXT записана строка, состоящая из символов с кодами ASCII от 33 до 127. Длина строки не превышает 105.

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

В выходной файл OUTPUT.TXT выведите одну строку – минимальный лексикографический сдвиг исходной строки.

Примеры

INPUT.TXTOUTPUT.TXT
1programamprogr
2cababc
3bbbbbbbbbb

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 Тренировочные олимпиады
 Введение
 Целочисленная арифметика
 Алгоритмы сортировки
 Длинная арифметика
 C++ Standard Template Library
 Динамическое программирование
 Комбинаторика
 Вычислительная геометрия
 Строки
 Структуры данных
 Теория графов - 1
 Теория графов - 2
 Простые задачи
 Алгоритмы на строках
 Полиномиальный хеш
 A. Функция Эйлера
 B. Обратный элемент
 C. Хеш-функция
 D. Взлом хеш-функции
 E. Рекламный щит
 F. Минимальный сдвиг
 G. Слова
 H. Строки - 3
 I. Подпалиндромы
 J. Циклические сдвиги

Красноярский краевой Дворец пионеров, (c)2006 - 2019, E-mail: admin@acmp.ru