求hack
查看原帖
求hack
202802
BotDand楼主2020/8/24 10:36

只有57分,实在找不出错误了,求助qwq

var
  n,m,i,s,max,x,y,t:longint;
  a:array[0..901] of longint;
  c:array[0..501] of longint;
  f:array[0..501] of boolean;
  b:array[0..501,0..501] of boolean;
 function cr(k:longint):boolean;
  var
    i:longint;
  begin
    for i:=1 to t do if k=c[i] then exit(false);
    exit(true);
  end;
 function pd(k:longint):boolean;
  var
    i:longint;
  begin
    for i:=1 to t do if b[k,c[i]]=false then exit(false);
    exit(true);
  end;
 procedure dfs(k:longint);
  var
    i:longint;
  begin
    for i:=1 to n do
      if cr(i) then
        if pd(i) then
          if f[i] then
            if b[i,k] then
              begin
                f[i]:=false;
                s:=s+a[i];inc(t);c[t]:=i;
                dfs(i);
              end;
  end;
begin
  readln(n,m);
  for i:=1 to n do readln(a[i]);
  for i:=1 to m do begin readln(x,y);b[x,y]:=true;b[y,x]:=true;end;
  for i:=1 to n do begin s:=0;t:=0;fillchar(f,sizeof(f),true);fillchar(c,sizeof(c),0);dfs(i);if s>max then max:=s;end;
  writeln(max);
end.
2020/8/24 10:36
加载中...