ADS - Quảng cáo

Tác giả: khuc_tuan

Ngôn ngữ: Pascal

//{$APPTYPE CONSOLE}
 {$mode delphi}

uses math, sysutils;

type
    Node = class
        i : integer;
        n : Node;
    end;

var
    ke : array[1..2000] of Node;
    res, m, i, u, v, n : integer;
    vs : array[1..2000] of boolean;

procedure AddList(var n : Node; u : integer);
var
    p : Node;
begin
    p := Node.Create;
    p.i := u;
    p.n := n;
    n := p;
end;

procedure dfs(i, tr : integer);
var
    p : Node;
    j : integer;
begin
    vs[i] := true;
    p := ke[i];
    while p<>nil do
    begin
        j := p.i;
        if not vs[j] then dfs(j, i)
        else if j <> tr then inc(res);
        p := p.n;
    end;
end;

begin
    readln(n,m);
    for i:=1 to m do
    begin
        readln(u,v);
        addList(ke[u], v);
        addList(ke[v], u);
    end;
    for i:=1 to n do
        if not vs[i] then
        begin
            dfs(i, -1);
        end;
    writeln(res div 2);
end.

Download