Pagini recente » Cod sursa (job #1969495) | Cod sursa (job #2791039) | Cod sursa (job #437383) | Cod sursa (job #2642026) | Cod sursa (job #148692)
Cod sursa(job #148692)
type nmare=array[0..100]of byte;
var n,m,i,j,k,x,y,cuv:longint;
re:array[1..26,1..26]of byte;
l1,l2,c:char;
a:array[1..1000,1..26]of nmare;
nr,nrc:nmare;
procedure transformare(var nr1:longint;var nr2:nmare);
var t:byte;
begin
t:=0;
while(nr1<>0)do
begin
t:=t+1;
nr2[t]:=nr1 mod 10;
nr1:=nr1 div 10;
end;
nr2[0]:=t;
end;
procedure adunare(var a,b:nmare);
var l,z,tmp:byte;
begin
if(a[0]>b[0])then
l:=a[0]
else
l:=b[0];
tmp:=0;
for z:=1 to l do
begin
tmp:=tmp+a[z]+b[z];
a[z]:=tmp mod 10;
tmp:=tmp div 10;
end;
if(tmp<>0)then
begin
z:=z+1;
a[z]:=tmp;
end;
a[0]:=z;
end;
begin
assign(input,'nrcuv.in');
reset(input);
readln(n,m);
for i:=1 to m do
begin
readln(l1,c,l2);
x:=ord(l1-'a')+1;
y:=ord(l2-'a')+1;
re[x,y]:=1;
re[y,x]:=1;
end;
close(input);
nr[0]:=1;
nr[1]:=1;
for k:=1 to 26 do
a[1,k]:=nr;
for i:=2 to n do
begin
for j:=1 to 26 do
begin
for k:=1 to 26 do
if(re[j,k]=0)then
cuv:=cuv+1;
transformare(cuv,nr);
adunare(a[i,j],nr);
end;
end;
assign(output,'nrcuv.out');
rewrite(output);
for i:=1 to 26 do
adunare(nrc,a[n,i]);
for i:=nrc[0] downto 1 do
write(nrc[i]);
close(output);
end.