Cod sursa(job #383592)

Utilizator juniorOvidiu Rosca junior Data 17 ianuarie 2010 05:04:19
Problema Generare de permutari Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.89 kb
var
  fi, fo : text;
  a : array [0..8] of byte;
  i, j, aux, n : byte;
  continuam : boolean;
begin
  assign (fi, 'permutari.in'); reset (fi);
  assign (fo, 'permutari.out'); rewrite (fo);
  read (fi, n);
  for i := 1 to n do
    begin
      a[i] := i;
      write (fo, i, ' ');
    end;
  writeln (fo);
  repeat
    i := n-1;
    while a[i] > a[i+1] do
      dec (i);
    continuam := i >= 1;
    if continuam then
      begin
        j := n;
        while a[i] > a[j] do
          dec (j);
        aux := a[i]; a[i] := a[j]; a[j] := aux;
        inc (i); j := n;
        repeat
          aux := a[i]; a[i] := a[j]; a[j] := aux; inc (i); dec (j);
        until i >= j;
        for i := 1 to n do
          write (fo, a[i], ' ');
        writeln (fo)
      end;
  until not continuam;
  close (fi); close (fo);
end.

53287641
  i   j
53487621
   87621
   i   j
53412678