結果
| 問題 |
No.160 最短経路のうち辞書順最小
|
| コンテスト | |
| ユーザー |
tails
|
| 提出日時 | 2015-03-02 01:30:34 |
| 言語 | Perl (5.40.0) |
| 結果 |
AC
|
| 実行時間 | 186 ms / 5,000 ms |
| コード長 | 434 bytes |
| コンパイル時間 | 92 ms |
| コンパイル使用メモリ | 6,684 KB |
| 実行使用メモリ | 14,208 KB |
| 最終ジャッジ日時 | 2024-06-24 00:55:14 |
| 合計ジャッジ時間 | 2,067 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 26 |
コンパイルメッセージ
Name "main::m" used only once: possible typo at Main.pl line 1. Main.pl syntax OK
ソースコード
($n,$m,$s,$g)=<>=~/\d+/g;
for(<>){
($a,$b,$c)=/\d+/g;
$c{$a,$b}=$c{$b,$a}=$c;
}
#print"a\n";
$v[$g]=1;
push@a,$g;
while(@a){
#@a=sort{$v[$a]-$v[$b]}@a;
$a=shift@a;
for$b(0..$n-1){
if($c=$c{$a,$b}){
if($v[$b]==0||$v[$b]>$v[$a]+$c||$v[$b]==$v[$a]+$c&&$p[$b]>$a) {
$v[$b]=$v[$a]+$c;
$p[$b]=$a;
push@a,$b;
}
}
}
}
#print"b\n";
print $s;
$a=$s;
do{
$a=$p[$a];
print" $a";
}while($a!=$g);
tails