Решение задачи Сдвиг перестановки с Acmp

Без пояснения   Просмотров: 75


Перестановкой порядка n называется последовательность из попарно различных целых положительных чисел p1, p2, ... , pn, где каждое 1 ≤ pi ≤ n. Будем говорить, что перестановка q1, q2, ... , qn лексикографически меньше перестановки p1, p2, . . . , pn, если существует такое i, что qi < pi, а для любого j < i pj = qj .

Циклическим сдвигом на k перестановки p1, p2, ... , pn называется последовательность, pk+1, pk+2, ... , pn, p1, ... , pk. Отметим, что любой циклический сдвиг перестановки также является перестановкой.

Ваша задача состоит в том, чтобы найти наименьший лексикографически циклический сдвиг заданной перестановки.


Код

#include <iostream>
#include <cmath>
#include <string>
using namespace std;
double sqr(int x)
{
return (x*x*1.0);
}
int main()
{
    int n,x,a[100010];
    cin >> n;
    for (int i = 1; i <= n; i++){
        cin >> a[i];
        if (a[i] == 1)
            x=i;
        }
    for (int i = x; i <= n; i++)
    cout << a[i] <<" ";
    for (int i = 1; i < x; i++)
    cout << a[i] <<" ";
    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться