Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

帮忙看看那里不对

Posted by oifox at 2008-05-14 20:22:49 on Problem 3594
program p3594;
const maxn=100;
      maxt=10000;
type node=record
         size:longint;
         b,e,c:array[1..50] of longint;
     end;
var n,m,s,t,i,j,k,ans,x,y:longint;
    a:array[1..maxn,1..maxn] of node;
    f:array[1..maxn,0..maxt] of longint;
begin
    readln(n,m,s,t);
    fillchar(a,sizeof(a),0);
    for i:=1 to m do begin
        read(x,y);
        inc(a[x,y].size);
        readln(a[x,y].b[a[x,y].size],a[x,y].e[a[x,y].size],a[x,y].c[a[x,y].size]);
        if a[x,y].e[a[x,y].size]-a[x,y].b[a[x,y].size]<a[x,y].c[a[x,y].size] then dec(a[x,y].size);
    end;
    fillchar(f,sizeof(f),255);
    for i:=0 to maxt do f[s,i]:=i;
    for k:=0 to maxt do
       for i:=1 to n do
    	 if (i<>s) then
	    for j:=1 to n do
                 if (a[j,i].size<>0) then
               	   for m:=1 to a[j,i].size do
                        if (k<=a[j,i].e[m]) and (k-a[j,i].c[m]>=a[j,i].b[m]) and (f[j,k-a[j,i].c[m]]<>-1) then
               	           if f[j,k-a[j,i].c[m]]>f[i,k] then f[i,k]:=f[j,k-a[j,i].c[m]];
    ans:=maxlongint;
    for i:=0 to maxt do
        if f[t,i]<>-1 then
            if i-f[t,i]<ans then ans:=i-f[t,i];
    if ans=maxlongint then writeln('Impossible') else writeln(ans);
end.

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator