Cod sursa(job #29365)

Utilizator izso88istvan zsolt izso88 Data 9 martie 2007 09:54:27
Problema Triplete Scor 40
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.54 kb
const fff=4100;
      ffk=fff div 8;
      mmm=70000;
var t:text;
    ad:array[0..fff,0..ffk] of longint;
    hany:longint;
    i,j,k,l,m,n,ne,u:longint;
    kh:array[0..8] of longint;
    list:array[1..mmm,1..2] of integer;
    szam:array[0..260] of byte;

procedure ert(x,ho,mi:integer);
          var se,os:integer;
          begin
          se:=ho div 8;
          os:=(ho mod 8);

          ad[x,se]:=ad[x,se]+kh[os];
          end;

begin
     kh[0]:=1;
     for i:=1 to 8 do
         kh[i]:=kh[i-1]*2;

     for i:=0 to 255 do begin

     k:=0;
     l:=i;
      for j:=0 to 7 do
       k:=k+((L shr j) mod 2);

      szam[i]:=k;

     end;

     assign(t,'triplete.in');
     reset(T);
      read(t,n,m);
      ne:=(n div 8)-1;
      if n mod 8>0 then ne:=ne+1;

      for i:=1 to n do for j:=1 to ne do ad[i,j]:=0;

      for i:=1 to m do begin
                       read(t,j,k);
                       ert(j,k,1);
                       ert(k,j,1);
                       list[i,1]:=j;
                       list[i,2]:=k;
                       end;
     close(T);
      hany:=0;
     for i:=1 to m do begin
                      j:=list[i,1];
                      k:=list[i,2];
                      for l:=0 to ne do
                      ad[0,l]:=(ad[j,l] and ad[k,l]);

                      for l:=0 to ne do
                       hany:=hany+szam[ad[0,l]];

                      end;

     assign(t,'triplete.out');
     rewrite(t);




     writeln(t,hany div 3);
     close(T);

end.