結果

問題 No.45 回転寿司
ユーザー kuroi_13
提出日時 2017-01-26 13:49:07
言語 Perl
(5.40.0)
結果
AC  
実行時間 470 ms / 5,000 ms
コード長 515 bytes
コンパイル時間 492 ms
コンパイル使用メモリ 5,504 KB
実行使用メモリ 6,016 KB
最終ジャッジ日時 2024-12-27 15:59:41
合計ジャッジ時間 6,079 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 30
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.pl syntax OK

ソースコード

diff #

use strict;
use warnings;

my $num = <STDIN>;
my %sushi;
for(reverse split(' ', <STDIN>)){
    $sushi{$num} = $_;
    $num--;
}

my %p = (-1 => 0);
my %n = %p;

for my $i (sort {$a <=> $b} keys %sushi) {
  for my $j (keys %p) {
    if($i - $j != 1){
      if(!defined($n{$i}) or (defined($n{$i}) and $n{$i} < $p{$j} + $sushi{$i})){
        $n{$i} = $p{$j} + $sushi{$i};
      }
    }
  }
  %p = ();
  map {$p{$_} = $n{$_}}(sort {$n{$b} <=> $n{$a}} keys %n)[0..1];
}

print $p{(sort {$p{$b} <=> $p{$a}} keys %p)[0]};
0