結果
| 問題 | No.4 おもりと天秤 | 
| コンテスト | |
| ユーザー |  kuroi_13 | 
| 提出日時 | 2017-01-27 10:40:09 | 
| 言語 | Perl (5.40.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 58 ms / 5,000 ms | 
| コード長 | 634 bytes | 
| コンパイル時間 | 711 ms | 
| コンパイル使用メモリ | 6,940 KB | 
| 実行使用メモリ | 6,944 KB | 
| 最終ジャッジ日時 | 2024-06-26 10:08:31 | 
| 合計ジャッジ時間 | 1,674 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 23 | 
コンパイルメッセージ
Main.pl syntax OK
ソースコード
use strict;
use warnings;
my $num = <STDIN>;
my @w = split(' ', <STDIN>);
my $sum = eval join('+', @w);
my %p = (0 => 0);
my %n = %p;
my $ans = 'impossible';
if($sum%2 == 0){
  my $half = $sum/2;
  my %pair = (slct => 0, rest => 0);
  LOOP: for my $i (@w){
    for my $j (keys %p){
      $pair{slct} = $j + $i;
      next if($pair{slct} > $half);
      if(!defined($n{$pair{slct}})){
        $pair{rest} = $sum - $pair{slct};
        if($pair{slct} == $pair{rest}){
          $ans = 'possible';
          last LOOP;
        }else{
          $n{$pair{slct}} = $pair{rest};
        }
      }
    }
    %p = %n;
  }
}
print $ans;
            
            
            
        