比赛 NOIP2008集训模拟3 评测结果 EEEEEEEEEE
题目名称 IP网络管理员 最终得分 0
用户昵称 zxc111 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2008-11-12 10:28:33
显示代码纯文本
  1. program ooo;
  2. var
  3. i,j,k,n,m:longint;
  4. s:string;
  5. max,min:string;
  6. t:text;
  7. se:array[1..20] of string;
  8. a,b,c:array[1..32] of longint;
  9. procedure oo(s:string;ss:longint);
  10. var
  11. i,j,k,n:longint;
  12. d:array[1..32] of longint;
  13. begin
  14. val(s,n,k);
  15. i:=0;
  16. fillchar(d,sizeof(d),0);
  17. while n<>0 do
  18. begin
  19. inc(i);
  20. d[i]:=n mod 2;
  21. n:=n div 2;
  22. end;
  23. for i:=8 downto 1 do
  24. a[ss*8+8-i+1]:=d[i];
  25. end;
  26. begin
  27. assign(t,'networkip.in');
  28. reset(t);
  29. readln(t,n);
  30. min:='255.255.255.255';
  31. max:='0.0.0.0';
  32. for i:=1 to n do
  33. begin
  34. readln(t,s);
  35. if s>max then max:=s;
  36. if s<min then min:=s;
  37. end;
  38. close(t);
  39. j:=1;
  40. k:=0;
  41. m:=-1;
  42. min:=min+'.';
  43. max:=max+'.';
  44. n:=0;
  45. for i:=1 to length(min) do
  46. if min[i]='.' then begin k:=i-1;s:=copy(min,j,n);inc(m);oo(s,m);j:=i+1;n:=0;end else inc(n);
  47. for i:=1 to 32 do
  48. b[i]:=a[i];
  49. j:=1;
  50. k:=0;
  51. m:=-1;
  52. n:=0;
  53. for i:=1 to length(max) do
  54. if max[i]='.' then begin k:=i-1;s:=copy(max,j,n);inc(m);oo(s,m);j:=i+1;n:=0;end else inc(n);
  55. for i:=1 to 32 do
  56. c[i]:=a[i];
  57. i:=1;
  58. while b[i]=c[i] do
  59. inc(i);
  60. dec(i);
  61. fillchar(a,sizeof(a),0);
  62. for j:=1 to i do
  63. a[j]:=b[j];m:=i;
  64. n:=0;
  65. assign(t,'networkip.in');
  66. rewrite(t);
  67. for i:=1 to 32 do
  68. begin
  69. if i mod 8=0 then begin write(t,n+a[i]);n:=0;end else if a[i]=1 then
  70. n:=n+trunc(exp((8-(i mod 8))*ln(2)));
  71. if i=8 then write(t,'.');
  72. if i=16 then write(t,'.');
  73. if i=24 then write(t,'.');
  74. end;
  75. n:=0;
  76. writeln(t);
  77. fillchar(a,sizeof(a),0);
  78. for i:=1 to m do
  79. a[i]:=1;
  80. for i:=1 to 32 do
  81. begin
  82. if (i mod 8=0) then begin write(t,n+a[i]);n:=0;end else if a[i]=1 then
  83. n:=n+trunc(exp((8-(i mod 8))*ln(2)));
  84. if i=8 then write(t,'.');
  85. if i=16 then write(t,'.');
  86. if i=24 then write(t,'.');
  87. end;
  88. close(t);
  89. end.