⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1129.pas

📁 平时acm训练时ac的源代码
💻 PAS
字号:
{$A+,B-,D+,E-,F-,G+,I+,L+,N+,O-,P-,Q-,R-,S+,T-,V+,X+,Y+}
{$M 16384,0,655360}

program Door_Painting;
const
  InputFile             = '1129.in';
  Max                   = 100;
var
  g, Res                : array [1..Max, 1..Max] of Byte;
  Link                  : array [1..Max, 0..Max] of Byte;
  Du                    : array [1..Max] of Integer;
  n                     : Integer;
  i, j, k, t, o         : Integer;

begin
  Assign(Input, InputFile);
  Reset(Input);
  Readln(n);
  Fillchar(g, Sizeof(g), 0);
  for i:=1 to n do begin
    Read(j); Link[i, 0]:=j;
    for k:=1 to j do begin
      Read(t);
      g[i, t]:=1; Link[i, k]:=t;
    end;
    Readln;
  end;
  Close(Input);
  Fillchar(Res, Sizeof(Res), 0);
  Fillchar(Du, Sizeof(Du), 0);
  for i:=1 to n do
    for j:=1 to n do
      if g[i, j]=1 then begin
        if Du[i]>=0 then k:=1
                    else k:=-1;
        Inc(Du[i], k); Dec(Du[j], k);
        if k>0 then Res[i, j]:=1
               else Res[j, i]:=1;
        g[i, j]:=0; g[j, i]:=0;
        t:=j;
        repeat
          o:=1;
          while (o<=n) and (g[t, o]=0) do Inc(o);
          if o<=n then begin
            Inc(Du[t], k); Dec(Du[o], k);
            if k>0 then Res[t, o]:=1
                   else Res[o, t]:=1;
            g[t, o]:=0; g[o, t]:=0;
            t:=o;
          end;
        until o>n;
      end;
  for i:=1 to n do begin
    k:=0;
    for j:=1 to Link[i, 0] do
      if Res[i, Link[i, j]]=1 then begin
        if k=0 then k:=1
               else Write(' ');
        Write('G');
      end
                     else
        if Res[Link[i, j], i]=1 then begin
          if k=0 then k:=1
                 else Write(' ');
          Write('Y');
        end;
    Writeln;
  end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -