讨论 / rq266(大牛看看,才60分)
Wych 2009-09-20 01:15:00
点我顶贴 收藏 删除
program rq266(input,output);

var g:array [0..500,0..500] of longint;

a,b,c,i,k,j,l,v,s,n,t,t1,t2,t3,t4,tt:integer;

str,strr:string;

begin

readln(str);

readln(n,k);

for i:=0 to n do

for j:=0 to n do

g[i,j]:=900000000;

for i:=1 to k do

begin readln(a,b,c);

g[a,b]:=c;

g[b,a]:=c;

end;

readln(strr);

s:=1;

t:=0;

while ord(strr[s])-48<=9 do inc(s);

for i:=1 to s-1 do

begin v:=1;

for j:=1 to s-i-1 do

v:=v*10;

t:=t+v*(ord(strr[i])-48);

end;

case strr[s] of

’h’:t:=t*60;

’s’:if t<>0 then t:=1;

end;

for l:=0 to n do

for i:=0 to n do

if i<>l then for j:=0 to n do

if (i<>j) and (j<>l) and (g[i,l]+g[j,l]<g[i,j]) then begin g[i,j]:=g[i,l]+g[j,l];

g[j,i]:=g[i,j];

end;

t:=t+g[1,n];

t1:=(ord(str[1])-48)*10+ord(str[2])-47;

t2:=(ord(str[4])-48)*10+ord(str[5])-48;

t2:=60-t2;

tt:=(24-t1)*60+t2;

if tt<=t then write(’Sad’)

else begin t3:=t div 60;

t4:=t-t3*60;

t1:=t1-1+t3;

t2:=60-t2+t4;

if t2>60 then begin inc(t1);

t2:=t2-60;

end;

write(t1,’:’);

if t2<10 then write(’0’,t2)

else write(t2);

end;

end.

#1 Wych@2008-09-06 05:23:00
回复 删除
#2 Wych@2008-09-07 01:59:00
回复 删除
再顶
#3 Wych@2008-09-09 06:03:00
回复 删除
啊!

wish回来了!

呵呵,麻烦你帮我看看这个题吧!

#4 wish@2008-09-09 06:14:00
回复 删除
老师正在把我们赶出微机室..

今天晚上没时间了

明天中午可能有时间看下这题

高手看到就顺便帮个忙吧

#5 Wych@2008-09-09 06:50:00
回复 删除
那我提前谢谢啦!
#6 世纪末的魔术师@2008-09-09 07:41:00
回复 删除
呃。。这题就Dijkstra就可以了啊
#7 世纪末的魔术师@2008-09-09 07:41:00
回复 删除
呃。。这题就Dijkstra就可以了啊
#8 wish@2008-09-09 21:49:00
回复 删除
貌似是最短路

对结果照题意稍微处理一下就行了

#9 guoshi3@2008-09-15 04:46:00
回复 删除
这题我交了两遍才过,第一遍也是2 7 8 10四个点没过,跟你一样。我是判断分钟小时或秒那处理歪了。你看看你那有问题不
#10 guoshi3@2008-09-15 04:52:00
回复 删除
恩就是这个问题,你的case .... ’s’:应该是t:=t div 60,而不是你那个句子。我把你的程序改了交了就过了
查看更多回复
提交回复