У меня С тоже по времени не прошло. Код на FPC type dig=set of 0..9; var a,b:array[1..10000,1..2] of byte; n,m,k,i,j:integer; bool:boolean; c:dig; begin read(n,m,k); bool:=false; for i:=1 to m do read(a[i,1],a[i,2]); for i:=1 to k do read(b[i,1],b[i,2]); for i:=1 to k do begin c:=[b[i,1]]; bool:=false; while not bool do begin bool:=true; for j:=1 to m do begin if ((a[j,1] in c) or (a[j,2] in c)) and not((a[j,1] in c) and (a[j,2] in c)) then begin c:=c+[a[j,1]]+[a[j,2]]; bool:=false; end; if end; end; if (b[i,1] in c) and (b[i,2] in c) then writeln('YES') else writeln('NO'); end; end. Кстати кто Е решил, там факториал через массив надо было?