程序:
var
i,j,k,n,m,time:longint;
u,v,w:array[0..55]of longint;
t:array[0..55,1..2]of longint;
f:array[0..10010,0..55]of longint;
begin
readln(n,time,m);
for i:=1 to m do
begin
readln(u[i],v[i],t[i,1],t[i,2],w[i]);
inc(t[i,2],t[i,1]+1);
end;
for i:=0 to time+1 do
for j:=0 to n-1 do
f[i,j]:=maxlongint;
f[0,0]:=0;
for i:=0 to time do
for j:=0 to n-1 do
begin
if f[i,j]=maxlongint then continue;
for k:=1 to m do
if (u[k]=j)and(t[k,1]=i)and(t[k,2]<=time+1) then
if f[i,j]+w[k]<f[t[k,2],v[k]] then f[t[k,2],v[k]]:=f[i,j]+w[k];
if f[i,j]<f[i+1,j] then f[i+1,j]:=f[i,j];
end;
if f[time+1,n-1]=maxlongint then writeln(-1) else writeln(f[time+1,n-1]);
end.