- محدودیت زمان: ۱ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
یک رشته از حروف کوچک انگلیسی به نام \(s = s_1s_2\dots s_n \,\) داریم.
منظور از یک «شیفت \(s\)» یعنی انتقال دادن \(k\) حرف اول این رشته به آخر آن. (\( 1 \leq k \leq n \,\))
به عبارت دیگر یک شیفت \(s\)، یک رشته به صورت زیر است: \[s_{k + 1} \dots s_n s_1 s_2 \dots s_k\]
حال از شما میخواهیم با داشتن رشته \(s\)، رشتهای از این \(n\) شیفت را پیدا کنید که در ترتیب الفبایی کمینه باشد.
در ترتیب الفبایی، رشته \(a\) از رشته \(b\) کمتر است اگر اولین کاراکتر \(a\) که با \(b\) فرق دارد، در ترتیب الفبای انگلیسی زودتر آمده باشد.
ورودی
در تنها سطر ورودی یک رشته از حروف کوچک انگلیسی مثل \(s\) آمده است. \[1 \leq |s| \leq 100 \, 000\] منظور از \(|s|\) طول رشته \(s\) است.
خروجی
در تنها سطر خروجی رشتهای از حروف کوچک انگلیسی را چاپ کنید که شیفتی از \(s\) بوده و به صورت الفبایی کمینه باشد.
مثال
ورودی نمونه ۱
nima
خروجی نمونه ۱
anim
شیفتهای nima عبارت است از iman، mani، anim و nima که رشتهای که در ترتیب الفبایی بین این ۴ رشته کوچکترین است anim خواهد بود.
ورودی نمونه ۲
acabd
خروجی نمونه ۲
abdac
شیفتهای acabd عبارت است از cabda، abdac، bdaca، dacab و acabd است که رشتهای که در ترتیب الفبایی بین این ۵ رشته کوچکترین است abdac خواهد بود.
ارسال پاسخ برای این سؤال