終点が1であることと経由する物質を答える以外は前のダイクストラ法の問題(
http://petitverse.hosiken.jp/community/petitcom/topic/?read=1493&ukey=0 )と同じじゃないんですか?
その時の自分の解答に、経由する物質を文字列配列で追加してみました
OPTION DEFINT
INPUT N,M
DIM AX[M],AY[M],AT[M] 'アンテナの情報
FOR I=0 TO M-1
INPUT AX[I],AY[I],AT[I]
NEXT
SORT AX,AY,AT '送信元の順に並べ替え
DIM TTIME[N] '端末nに届く時刻
DIM ANS$[N]:ANS$[0]="0" '今回追加
INF=1000000
FILL TTIME,INF,1 '端末0以外をFILL
DIM TID[N],TTIME_CPY[N] 'あとでSORTする用
FOR I=0 TO N-1
TID[I]=I
NEXT
SENDED=0 '送信(受信ではない)が完了した端末の数
WHILE SENDED<N-1
' TID[SENDED]からデータを送信する
TM=TTIME[TID[SENDED]] '現在時刻
FOR I=0 TO M-1
'ここはたぶんプチコン4でFINDを使うと速い
IF AX[I]<TID[SENDED] THEN CONTINUE
IF AX[I]>TID[SENDED] THEN BREAK
'今回追加した処理
IF TM+AT[I]<TTIME[AY[I]] THEN
TTIME[AY[I]]=TM+AT[I]
ANS$[AY[I]]=ANS$[TID[SENDED]]+","+STR$(AY[I])
ENDIF
NEXT
IF TID[SENDED]==1 THEN BREAK '端末1で終了
TTIME[TID[SENDED]]=-1 '送信完了(SORTで必ず前に来るように-1をセット)
SENDED=SENDED+1 '送信完了した端末の個数
COPY TTIME_CPY,TTIME
SORT TID
SORT TTIME_CPY,TID '早くデータが届いた順にTIDを並べ替え
WEND
?TTIME[1] '時間...じゃなくて魔法石の個数
?ANS$[1] '経路