Cod sursa(job #761508)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 26 iunie 2012 12:09:50
Problema Triplete Scor 90
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.11 kb
Program triplete;
type tip=record
          x,y:longint;
          end;
 var bit:array [1..4100,1..210] of longint;
     a:array [1..1 shl 16] of tip;
     n,m,i,x,y,aux,rez,j,nr:longint;
     fi,fo:text;
begin
 assign(fi,'triplete.in');
  assign(fo,'triplete.out');
 reset(fi); rewrite(fo); readln(fi,n,m);
  for i:=1 to m do begin
                     readln(fi,a[i].x,a[i].y);
                      if a[i].y<a[i].x then begin aux:=a[i].x; a[i].x:=a[i].y; a[i].y:=aux; end;
                    if a[i].y mod 20=0 then bit[a[i].x,a[i].y div 20]:=bit[a[i].x,a[i].y div 20]+1 shl 19
                              else bit[a[i].x,a[i].y div 20+1]:=bit[a[i].x,a[i].y div 20+1]+1 shl (a[i].y mod 20-1);
                    end;
  for i:=1 to m do
   for j:=1 to n div 20+1 do begin
                              nr:=bit[a[i].x,j] and bit[a[i].y,j];
                              while nr>0 do begin
                               if nr and 1=1 then inc(rez);
                                nr:=nr shr 1;
                                 end;
                              end;
  write(fo,rez);
 close(fo);
end.