Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const
- maxc=1000000000;
- finp='';
- fout='';
- var
- n,m,t,u,v:longint;
- a,tg,trace:array[1..100,1..100] of longint;
- kqua:array[1..100] of longint;
- fi,fo:text;
- procedure openfile;
- begin
- assign(fi,finp);
- reset(fi);
- assign(fo,fout);
- rewrite(fo);
- end;
- procedure closefile;
- begin
- close(fi);
- close(fo);
- end;
- procedure test0;
- var
- i,j,k:longint;
- begin
- for i:=1 to n do
- for j:=1 to n do trace[i,j]:=j;
- for k:=1 to n do
- for i:=1 to n do
- for j:=1 to n do
- if (i<>k) and (j<>k) then
- if tg[i,j]>tg[i,k]+tg[k,j] then
- begin
- tg[i,j]:=tg[i,k]+tg[k,j];
- trace[i,j]:=trace[i,k];
- end;
- write(fo,tg[u,v]);
- end;
- procedure test1;
- var
- i,j,k,dem:longint;
- begin
- for i:=1 to n do
- for j:=1 to n do trace[i,j]:=j;
- for k:=1 to n do
- for i:=1 to n do
- for j:=1 to n do
- if tg[i,j]>tg[i,k]+tg[k,j] then
- begin
- tg[i,j]:=tg[i,k]+tg[k,j];
- trace[i,j]:=trace[i,k];
- end;
- dem:=1;
- kqua[1]:=u;
- while trace[u,v]<>v do
- begin
- inc(dem);
- kqua[dem]:=trace[u,v];
- u:=trace[u,v];
- end;
- inc(dem);
- kqua[dem]:=v;
- write(fo,dem,' ');
- for i:=1 to dem do write(fo,kqua[i],' ');
- end;
- procedure nhap;
- var
- i,j,k,c,luu:longint;
- begin
- readln(fi,n,m,t);
- for i:=1 to m do
- begin
- read(fi,u,v,c);
- a[u,v]:=c;
- a[v,u]:=c;
- end;
- for k:=1 to t do
- begin
- read(fi,luu,u,v);
- for i:=1 to n do
- for j:=1 to n do
- if a[i,j]<>0 then tg[i,j]:=a[i,j] else tg[i,j]:=maxc;
- if luu=0 then test0 else test1;
- writeln(fo);
- end;
- end;
- begin
- openfile;
- nhap;
- closefile;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement