Олимпиадная задача. Определить маршруты автобусов

Расписание движения n маршрутов автобусов по m остановкам города в течении 1 часа внесено в таблицу размерностью N x M. Считаем что каждый автобус может побывать на какой либо остановке только один раз. Значение "0" в таблице обозначает, что автобус на этой остановке не останавливается. Определить, есть ли маршруты на которых не встретятся ни одна пара автобусов; автобусы каких маршрутов встретятся на одной остановке

code: #pascal
program lab;
const n=4;m=4;
var a:array[1..n,1..m] of integer;
s,q,t,i,j:integer;
label 1;
begin
 for i:=1 to n do begin
  for j:=1 to m do begin
   write('Znachenie ',i,' marshruta na ',j,' ostanovke...');
   readln(a[i,j]);
   end;
  end;
 for i:=1 to m do begin
 t:=0;
 s:=0;
 repeat
 t:=t+1;
 if a[t,i]=0 then s:=s+1;
 until t>n;
 if s=n then writeln('Na ',i,' ostanovke nikto ne vstretitsya') else
 begin
  for j:=1 to n do begin
  if a[j,i]=1 then begin
  for q:=1 to n do begin
  if (q<>j) and (a[q,i]=1) then
  writeln('Marshruti ',q,' i ',j,' vstretyatsya na ', i ,' ostanovke');
  end;
 goto 1;
 end;
end;
1:
end;
end;
end.
Поделиться:

Похожие статьи: