首页 > 试题广场 >

var n, t, i : longint; ...

[填空题]
var
  n, t, i : longint;
  a, b : array[0..110] of longint;
  isUse : array[0..110] of boolean;
function isSmall( ):boolean;
var
  i : longint;
begin
  for i := 1 to n do
    if a[i] <> b[i] then
      exit(a[i] < b[i]);
  exit(false);
end;
function getPermutation(pos : longint) : boolean;
var
  i : longint;
begin
  if pos > n then
    exit(isSmall( ));
  for i := 1 to n do
  begin
    if isUse[i] = false then
    begin
      b[pos] := i; isUse[i] := true;
      if getPermutation(pos + 1) = true then
        exit(true);
      isUse[i] := false;
    end;
  end;
  exit(false);
end;
procedure getNext( );
var
  i : longint;
begin
  for i := 1 to n do
    isUse[i] := false;
  getPermutation(1);
  for i := 1 to n do
    a[i] := b[i];
end;
begin
  read(n, t);
  for i := 1 to n do
    read(a[i]);
  for i := 1 to t do
    getNext( );
  for i := 1 to n do
  begin
    write(a[i]);
    if i = n then writeln else write(' ');
  end;
end.

输入1:6 10 1 6 4 5 3 2
输出1:1(3 分)
输入2:6 200 1 5 3 4 2 6
输出2:2(5 分)

这道题你会答吗?花几分钟告诉大家答案吧!