Pagini recente » Cod sursa (job #776374) | Cod sursa (job #1960776) | Cod sursa (job #2518954) | Cod sursa (job #3294194) | Cod sursa (job #116266)
Cod sursa(job #116266)
{ cu matrice de adiacenta
memorie mai multa decat cu liste de vecini, foarte putin mai rapid }
var
fi, fo : text;
a : array [0..1000] of integer;
d : array [0..1000,0..1000] of boolean; {relatiile de dusmanie}
liber : array [1..1000] of boolean;
n, k, m, l, c, asezari, i : integer;
gata : boolean;
procedure back (i : integer);
var
j, l : integer;
begin
if i = n+1 then
begin
inc(asezari);
if asezari = k then
begin
for l := 1 to n do
write(fo, a[l], ' ');
gata := true
end
end
else
begin
j := 1;
while (j <= n) and (not gata) do
begin
if liber[j] then
if not d[j,a[i-1]] then
begin
a[i] := j;
liber[a[i]] := false;
back (i+1);
liber[a[i]] := true
end;
inc(j)
end
end
end;
{------------------------}
begin
assign(fi,'dusman.in'); reset(fi);
assign(fo,'dusman.out'); rewrite(fo);
readln(fi,n,k,m);
for i := 1 to n do
liber[i] := true;
for i := 1 to m do
begin
readln(fi, l, c);
d[l,c] := true; d[c,l] := true;
end;
back(1);
close(fi); close(fo);
end.
{ Greseala: byte in loc de integer in back => TLE ! }