結果
| 問題 |
No.437 cwwゲーム
|
| コンテスト | |
| ユーザー |
kuroi_13
|
| 提出日時 | 2017-03-24 14:57:12 |
| 言語 | Perl (5.40.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,127 bytes |
| コンパイル時間 | 103 ms |
| コンパイル使用メモリ | 6,944 KB |
| 実行使用メモリ | 8,960 KB |
| 最終ジャッジ日時 | 2024-07-06 01:49:51 |
| 合計ジャッジ時間 | 7,215 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 33 WA * 8 |
コンパイルメッセージ
Main.pl syntax OK
ソースコード
use strict;
use warnings;
my @nums = split '', <>;
my $n = $#nums+1;
my @dp;
for my $i (0..(1<<$n)-1){
$dp[$i] = [0, $n];
}
my(@nd, $val, @pos);
my @ans = (0);
for my $d (0..(1<<$n)-1){
next if($dp[$d][1] < 3);
for my $i (0..$n-1){
next if(($d>>$i) % 2);
$nd[0] = $d | 1<<$i;
$dp[$nd[0]][1] = $dp[$d][1]-1;
if($i < $n-1-1){
for my $j ($i+1..$n-1){
next if(($nd[0]>>$j) % 2);
$nd[1] = $nd[0] | 1<<$j;
$dp[$nd[1]][1] = $dp[$nd[0]][1]-1;
if($j < $n-1){
for my $k ($j+1..$n-1){
next if(($nd[1]>>$k) % 2);
$nd[2] = $nd[1] | 1<<$k;
$dp[$nd[2]][1] = $dp[$nd[1]][1]-1;
@pos = map {$n-1 - $_} ($i, $j, $k);
if(0 < $nums[$pos[2]] and $nums[$pos[2]] != $nums[$pos[1]] and $nums[$pos[1]] == $nums[$pos[0]]){
$val = $nums[$pos[2]].$nums[$pos[1]].$nums[$pos[0]] + $dp[$d][0];
if($dp[$nd[2]][0] < $val){
$dp[$nd[2]][0] = $val;
push @ans, $val;
}
}
}
}
}
}
}
}
print+(sort {$b <=> $a} @ans)[0];
kuroi_13