| Subiectul anterior :: Subiectul urmator |
| Autor |
Mesaj |
g5u Junior

Data inscrierii: 08/Noi/2007 Mesaje: 4
|
Trimis: 15/11/2007 11:28 Titlul subiectului: problema 3 pagina 125 |
|
|
| Cod: |
type ma=record
x,y:byte;
end;
var n,i,p:integer;
v:array[1..100] of ma;
sol:array[1..100] of integer;
procedure init(k:integer);
begin
sol[k]:=0;
end;
function succesor(k:integer):boolean;
begin
if sol[k]<n then begin
sol[k]:=sol[k]+1;
succesor:=true;
end
else succesor:=false;
end;
function valid(k:integer):boolean;
var i,nr:integer;
begin
valid:=true;
for i:=1 to n do begin
if k>1 then if (sol[k-1]=v[i].x) and (sol[k]=v[i].y) or (sol[k-1]=v[i].y) and (sol[k]=v[i].x) then
valid:=false;
if k=n then if (sol[n]=v[i].x) and (sol[1]=v[i].y) or (sol[n]=v[i].y) and (sol[1]=v[i].x) then
valid:=false;
end;
for i:=1 to k-1 do
if sol[i]=sol[k] then valid:=false;
end;
function solutie(k:integer):boolean;
begin
solutie:=(k=n+1);
end;
procedure tipar;
var i:integer;
begin
for i:=1 to n do
write(sol[i]);
writeln
end;
procedure back(k:integer);
begin
if solutie(k) then tipar
else begin
init(k);
while succesor(k) do
if valid(k) then back(k+1);
end;
end;
begin
write('n='); readln(n);
write('p='); readln(p);
for i:=1 to p do begin
write('v[i].x=');
read(v[i].x);
write('v[i].y=');
read(v[i].y);
end;
back(1);readln end. |
_________________ Andrei Valentin |
|
| Sus |
|
 |
uahanamiti Junior

Data inscrierii: 29/Iun/2012 Mesaje: 6 Localitate: Ukraine
|
Trimis: 15/07/2012 22:01 Titlul subiectului: |
|
|
| How cool is that! |
|
| Sus |
|
 |
uahanamiti Junior

Data inscrierii: 29/Iun/2012 Mesaje: 6 Localitate: Ukraine
|
Trimis: 17/07/2012 08:59 Titlul subiectului: |
|
|
| I love your style |
|
| Sus |
|
 |
|