結果

問題 No.5002 stick xor
ユーザー %20%20
提出日時 2018-05-26 00:31:48
言語 Perl
(5.40.0)
結果
AC  
実行時間 904 ms / 1,000 ms
コード長 733 bytes
コンパイル時間 28,494 ms
実行使用メモリ 3,384 KB
スコア 39,737
最終ジャッジ日時 2018-05-26 00:32:18
ジャッジサーバーID
(参考情報)
judge8 /
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 32
権限があれば一括ダウンロードができます
コンパイルメッセージ
Name "main::K" used only once: possible typo at Main.pl line 2.
Main.pl syntax OK

ソースコード

diff #

$,=$";$\=$/;
($N,$K)=glob<>;
@s=sort{$b-$a}@L=glob<>;
@A=map[/./g],map~~<>,1..$N;
for$l(@s){
	$C=-1;
	for$y(0..$N-1){
		$c=0;
		for$x(0..$l-1){
			$c+=$A[$y][$x]
		}
		if($c>$C){
			$C=$c;$Y=$y;$X=$l-1
		}
		for$x($l..$N-1){
			$c+=$A[$y][$x]-$A[$y][$x-$l];
			if($c>$C){
				$C=$c;$Y=$y;$X=$x
			}
		}
	}
	$D=-1;
	for$x(0..$N-1){
		$c=0;
		for$y(0..$l-1){
			$c+=$A[$y][$x]
		}
		if($c>$D){
			$D=$c;$YY=$l-1;$XX=$x
		}
		for$y($l..$N-1){
			$c+=$A[$y][$x]-$A[$y-$l][$x];
			if($c>$D){
				$D=$c;$YY=$y;$XX=$x
			}
		}
	}
	if($C>$D){
		push@$l,[$Y+1,$X-$l+2,$Y+1,$X+1];
		for$x($X-$l+1..$X){
			$A[$Y][$x]^=1
		}
	}else{
		push@$l,[$YY-$l+2,$XX+1,$YY+1,$XX+1];
		for$y($YY-$l+1..$YY){
			$A[$y][$XX]^=1
		}
	}
}
print@{pop@$_}for@L
0