PASCAl

Авторизация
 
  • Автор

    Привет посоны! Нужна ваша помощь (не за бесплатно конечно)
    По заданной перестановке из N элементов выдать 5 следующих перестановок в лексикографическом порядке.
    uses crt;
    var n,i,j,min,minj,tmp,a,k,c,p:integer;
    x:array[1..10]of integer;
    begin
    writeln('vvedite n');
    readln(n);
    writeln('vvedite perestanovky x');
    for i:=1 to n do
    read(x);
    i:=n-1;
    repeat
    while(x>=x[i+1])and(i>=0) do
    i:=i-1;
    min:=x[i+1];
    minj:=i+1;
    for j:=i+1 to n do
    if (x[j]>x) and (x[j] < min) then
    begin
    min:=x[j];
    minj:=j;
    end;
    tmp:=x;
    x:=x[minj];
    x[minj]:=tmp;
    for i:=i+1 to n do
    begin
    min:=x;
    k:=i;
    for j:=i to n do
    if x[j]<min then begin min:=x[j];k:=j;end;
    x[k]:=x;
    x:=min;
    end;
    writeln;
    for i:=1 to n do
    write (x);
    c:=c+1;
    until c=5;
    end.
    сам код программы, но когда вводишь перестановку 54312 он должен ввести перестановку 54321 и завершить, а она делает перестановку и выдает ошибку
    вознаграждение 1000 монет

Авторизация