program backtrack; var v:array[1..50]of integer; db:integer; PROCEDURE kiir(i:integer); var j:integer; begin inc(db); For j:=1 to i do If v[j]=1 then write('fizika ') else write('info '); readln; end; FUNCTION jo(i:integer):boolean; var ok:boolean; db1,db2,j:integer; begin ok:=true; db1:=0; db2:=0; For j:=1 to i do If v[j]=1 then inc(db1); If v[j]=2 then inc(db2); If db1>3 then ok:=false; If db2>2 then ok:=false; jo:=ok; end; PROCEDURE back(i:integer); var j:integer; begin For j:= 1 to 2 do begin v[i]:=j; If jo(i) then If i=5 then kiir(i) else back(i+1); end; end; {-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-} begin db:=0; back(1); writeln(db,'. megoldas.'); readln; end.