Cod sursa(job #120699)
Utilizator | Data | 6 ianuarie 2008 13:02:51 | |
---|---|---|---|
Problema | Dusman | Scor | 10 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 1.89 kb |
const nmax=100;
type vector=array[1..nmax] of integer;
var
i,x,y,N,kk,k,M:integer;
as,ev:boolean;
Viz,st:vector;
f:text;
D:Array[1..nmax,1..nmax] of integer;
Begin
assign(f,'dusman.in'); reset(f);
readln(f,N,kk,M);
For i:=1 To M do
begin
Readln(f,x,y);
D[x,y]:=1;
D[y,x]:=1;
end;
close(f);
x:=0;
k:=1;
st[1]:=0;
while k>0 do
begin
Repeat
if (St[k]<N) then begin
St[k]:=St[k]+1;
as:=True
end
else as:=False;
if as then if k>1 then
ev:=(Viz[st[k]]=0) and (D[st[k-1],st[k]]=0)
else ev:=true;
if (ev and as) then viz[st[k]]:=1
Until (as and ev) Or (not as);
if as then
if k=N then begin
x:=x+1;
if x=kk then begin
assign(f,'dusman.out'); rewrite(f);
for x:=1 to k do
write(f,st[x],' ');
close(f);
halt;
end;
viz[st[k]]:=0;
end
else begin
k:=k+1;
st[k]:=0;
end
else begin
k:=k-1;
Viz[st[k]]:=0;
end;
end;
end.