Pagini recente » Cod sursa (job #243904) | Cod sursa (job #1922159) | Cod sursa (job #2563242) | Cod sursa (job #1386333) | Cod sursa (job #25266)
Cod sursa(job #25266)
var a:array[1..100] of integer;
sel:array[1..100] of boolean;
k, kk, n, i: integer; nr:longint;
f,g:text;
procedure back(k:integer);
var i, s:integer;ok:boolean;
begin
if (k=n+1) then begin
s:=0;ok:=true;
for i:=1 to kk do s:=s+a[i];
if (s mod kk <>0) then ok:=false;
i:=kk+1;
while (ok) and (i<=n) do begin
s:=s+a[i]-a[i-kk];
inc(i);
if (s mod kk<>0) then ok:=false;
end;
if (ok) then nr:=(nr+1) mod 666013;
end
else begin
for i:=1 to n do
if (sel[i] = false) then begin sel[i]:=true; a[k]:=i; back(k+1); sel[i]:=false; end;
end;
end;
begin
assign(f,'kperm.in');reset(f);
assign(g,'kperm.out');rewrite(g);
readln(f,n,kk);
if (kk mod 2 = 0) then writeln(g, 0)
else if (n=kk) then begin
nr:=1;
for i:=1 to n do nr:=(nr*i) mod 666013;
writeln(g,nr);
end
else begin
nr:=0;
back(1);
writeln(g, nr mod 666013);
end;
close(f);
close(g);
end.