比赛 20100324 评测结果 EEAEAEEE
题目名称 奇特的图案 最终得分 25
用户昵称 Achilles 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2010-03-24 20:02:12
显示代码纯文本
program t3;
type
  light=array[1..1000]of boolean;
var
  n,t,i,j,p1,p2,p:integer;
  tab:array[0..10000]of light;
  tab2:array[1..1000,1..1000]of boolean;
  step:array[1..10000]of integer;
begin
  assign(input,'t3.in');
  assign(output,'t3.out');
  reset(input);
  rewrite(output);
  readln(n);
  fillchar(tab,sizeof(tab),true);
  fillchar(tab2,sizeof(tab2),false);
  for i:=1 to n do
  begin
    read(t);
    if t=0 then tab[1,i]:=false;
    while not eoln do
    begin
      read(t);
      tab2[i,t]:=true;
    end;
  end;
  p1:=0;
  p2:=1;
  step[1]:=0;
  while true do
  begin
    p1:=p1+1;
    p:=0;
    for i:=1 to n do
      if tab[p1,i]=false then begin
        p:=1;
        break;
      end;
    if p=0 then begin
      writeln(step[p1]);
      break;
    end
    else begin
      for i:=1 to n do
      begin
        p2:=p2+1;
        tab[p2]:=tab[p1];
        step[p2]:=step[p1]+1;
        if tab[p2,i] then tab[p2,i]:=false else tab[p2,i]:=true;
        for j:=1 to n do
        begin
          if tab2[i,j]=true then
            if tab[p2,j] then tab[p2,j]:=false else tab[p2,j]:=true;
        end;
      end;
    end;
  end;
  close(input);
  close(output);
end.