Cod sursa(job #145709)
Utilizator | Data | 29 februarie 2008 11:15:58 | |
---|---|---|---|
Problema | Dusman | Scor | 20 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 1.98 kb |
const nmax=1000;
type stiva=array[1..nmax] of integer;
var f,g:text;
a:array[1..nmax,1..nmax] of 0..1;
j,k,x,y,l,m,n,i,o:longint;
ap:array[1..nmax] of 0..1;
st:stiva;
ev,as:boolean;
begin
assign(f,'dusman.in');reset(f);
readln(f,n,l,m);
for i:=1 to m do begin
readln(f,x,y);
a[x,y]:=1;
a[y,x]:=1;
end;
close(f);
assign(f,'dusman.out');rewrite(f);
k:=1; st[k]:=0;
while k>0 do
begin
repeat
as:=False;
if st[k]<N then begin
as:=True;
st[k]:=st[k]+1;
end;
if as then begin
ev:=True;
for j:=1 to k-1 do
if st[k]=st[j] then begin
ev:=false;
break;
end;
if (k>1) and (a[st[k],st[k-1]]=1) then ev:=false;
end;
until (not as) Or (as and ev);
if as then
if k=N then begin
o:=o+1;
if o=L then begin
For i:=1 To N-1 do
write(f,st[i],' ');
writeln(f,st[N]);
close(f);
halt;
end;
end
else begin
k:=k+1;
st[k]:=0;
end
else begin
k:=k-1;
end;
end;
close(f);
End.