Pagini recente » Cod sursa (job #466601) | Cod sursa (job #978906) | Cod sursa (job #836311) | Cod sursa (job #506635) | Cod sursa (job #11582)
Cod sursa(job #11582)
program triplete;
const
fin='triplete.in';
fout='triplete.out';
nmax=4096;
type
muchie=record
x,y:integer;
end;
var
m:array[1..65536] of muchie;
adj:array[1..nmax,0..256] of longint;
nm,n,i,j,k,x,y:longint;
num_tr:longint;
num:array[0..65536] of byte;
procedure adauga(x,y:longint);
begin
adj[x,y shr 4]:=adj[x,y shr 4] or (1 shl (y and 15));
end;
function num_ones(x:longint):byte;
var
num:byte;
begin
num:=0;
while x<>0 do
begin
inc(num);
x:=x and (x-1);
end;
num_ones:=num;
end;
begin
assign(input,fin);
reset(input);
readln(n,nm);
for i:=1 to nm do
begin
readln(m[i].x,m[i].y);
adauga(m[i].x,m[i].y);
adauga(m[i].y,m[i].x);
end;
close(input);
assign(output,fout);
rewrite(output);
for i:=0 to 65536 do
num[i]:=num_ones(i);
num_tr:=0;
for i:=1 to nm do
begin
for j:=0 to n shr 4 do
inc(num_tr,num[adj[m[i].x,j] and adj[m[i].y,j]])
end;
writeln(num_tr div 3);
close(output);
end.