На форумі обговорюються лише питання, пов'язані з олімпіадою
Ви не зайшли.
Вот мой код
program v5;
var n,i,j,p,l:byte;
k:Longint;
a:array[1..11]of Longint;
b,c:array[1..12]of byte;
procedure fill_ab(n:byte);
var f:Longint;
i:byte;
begin
f:=1;
b[n]:=n;
for i:=1 to n-1 do begin
f:=f*i;
a[i]:=f;
b[i]:=i;
end;
end;
begin
Readln(n,k);
fill_ab(n);
p:=n;
for i:=1 to n do begin
for j:=1 to p do begin
if (k<=(j*a[p-1]))then begin
c[i]:=b[j];
for l:=j to p do b[l]:=b[l+1];
k:=k-(j-1)*a[p-1];
p:=p-1;
break;
end;
end;
end;
for i:=1 to n do write(char(96+c[i]));
end.
За задачу 0 баллов, мои етсты проходят для любых значений n,k.
Відредаговано SjMaster (2006-10-29 10:44:40)
Поза форумом
поставь {$I+,Q+,R+,S-}, и убедись еще раз, работает твоя программа или нет.
* if (k<=(j*a[p-1]))then begin
Вот в этой строчке твоя программа вылетает с range check, т.к. p = 1.
Відредаговано xbit (2006-10-29 11:52:02)
Поза форумом
Understand
Поза форумом