結果
| 問題 |
No.325 マンハッタン距離2
|
| コンテスト | |
| ユーザー |
tails
|
| 提出日時 | 2015-12-18 00:26:22 |
| 言語 | Perl (5.40.0) |
| 結果 |
AC
|
| 実行時間 | 3 ms / 1,000 ms |
| コード長 | 445 bytes |
| コンパイル時間 | 271 ms |
| コンパイル使用メモリ | 6,940 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-09-16 08:12:38 |
| 合計ジャッジ時間 | 1,046 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 24 |
コンパイルメッセージ
Main.pl syntax OK
ソースコード
sub g{$_[0]>0&&$_[0]*(1+$_[0])/2}
sub f{
my($x1,$y1,$x2,$y2,$d)=@_;
($x1,$x2)=($x2,$x1)if$x1>$x2;
($y1,$y2)=($y2,$y1)if$y1>$y2;
return 0 if $x2<0||$y2<0||$d<0;
$x2-=$x1,$d-=$x1 if$x1>0;
$y2-=$y1,$d-=$y1 if$y1>0;
return $d>$x2+$y2?($x2+1)*($y2+1):g($d+1)- g($d-$x2)- g($d-$y2);
}
$/=$";($x1,$y1,$x2,$y2,$d)=<>;
print f($x1,$y1,$x2,$y2,$d)+
f(-$x1-1,$y1,-$x2-1,$y2,$d-1)+
f($x1,-$y1-1,$x2,-$y2-1,$d-1)+
f(-$x1-1,-$y1-1,-$x2-1,-$y2-1,$d-2);
tails