比赛 NOIP2015普及组练习 评测结果 AAAAAAAAAA
题目名称 分组 最终得分 100
用户昵称 FoolMike 运行时间 0.016 s
代码语言 Pascal 内存使用 0.59 MiB
提交时间 2015-11-03 12:59:13
显示代码纯文本
var
a,b,c,d,e,j,n,m,k,g:longint;
x:array[0..10]of longint;
y:array[1..18000,1..10]of longint;
begin
assign(input,'dataa.in');
assign(output,'dataa.out');
reset(input);
rewrite(output);
readln(n,m);
for a:=1 to m-1 do 
  begin 
  x[a]:=1;y[1,a]:=1;
  end;
x[m]:=n-m+1;y[1,m]:=x[m];k:=1;j:=1;
repeat 
  c:=m;
  while x[c]=x[c-1] do c:=c-1;
  if c=1 then break;
  x[c]:=x[c]-1;g:=c-1;
  while x[g]=x[g+1] do g:=g-1;
  x[g]:=x[g]+1;
  if x[0]=0 then 
    begin
    if m-g>=2 then 
      begin 
      for d:=g+1 to m-1 do 
      x[d]:=x[g];
      e:=0;
      for d:=1 to m-1 do 
      e:=e+x[d];
      x[m]:=n-e;
      end;
    k:=k+1;j:=j+1;
    for b:=1 to m do 
    y[j,b]:=x[b];
    end;
  until x[0]<>0;
writeln(k);
for a:=1 to 18000 do 
  begin 
  if y[a,1]=0 then break;
  for b:=1 to m do 
  write(y[a,b],' ');
  writeln;
  end;
close(input);
close(output);
end.