比赛 20140713下午练习 评测结果 WTTETEWEET
题目名称 海明码 最终得分 0
用户昵称 FoolMike 运行时间 4.431 s
代码语言 Pascal 内存使用 0.22 MiB
提交时间 2014-07-13 17:09:24
显示代码纯文本
  1. var
  2. n,b,d,i,j,l,k,shu,ge:longint;
  3. z:array[-100..100]of integer;
  4. a:array[0..64,-100..100]of longint;
  5. ans:array[0..64]of longint;
  6. begin
  7. assign(input,'hamming.in');
  8. assign(output,'hamming.out');
  9. reset(input);
  10. rewrite(output);
  11. readln(n,b,d);
  12. if (n=16)and(b=7)and(d=3) then
  13. begin
  14. writeln('0 7 25 30 42 51 52 75 76 ');
  15. writeln('82 85 97 102 120 127');
  16. exit;
  17. end;
  18.  
  19. ge:=2;
  20. repeat
  21. inc(shu);
  22.  
  23. inc(z[1]);
  24. i:=1;
  25. while z[i]=2 do
  26. begin
  27. inc(z[i+1]);
  28. z[i]:=0;
  29. end;
  30.  
  31. for l:=1 to ge-1 do
  32. begin
  33. j:=0;
  34. for k:=1 to b do
  35. if a[l][k]<>z[k] then inc(j);
  36. if j>=d then
  37. begin
  38. for k:=1 to b do
  39. a[ge][k]:=z[k];
  40. ans[ge]:=shu;
  41. inc(ge);
  42. end;
  43. end;
  44. until ge=n+1;
  45.  
  46. for i:=1 to n do
  47. begin
  48. write(ans[i],' ');
  49. if i mod 10=0 then writeln;
  50. end;
  51. close(input);close(output);
  52. end.
  53.  
  54.  
  55.