問題
与えられた入力 a
は、出力の各
‘ブロック’に対して1つの要素しか持たない限り、aは任意の入力形式の文字のグリッドです。
そして、 b
を入力します。ここで、bは入力 a
と同じサイズのグリッドです。
There are two types of road, a 1 represents a stone road marked
by @
and a 2 represents a dirt road marked by
#
-
@
道路はブロック内の中央に配置され、道路が隣接している場合はそのサイズが6×6です。 -
道路が隣接している場合はそのブロックがグリッドセルの境界線まで拡張された
#
道路がブロックの中央に配置されます。
入力 a
にASCII文字の行番号8×8でグリッドオフセットを出力し、入力
b
から ‘road’をオーバーレイします。
Input a=[[a,b,a],[b,a,b],[a,b,a]]
b=[[1,1,1],[2,0,1],[2,0,0]]
出力:
ステップ1:グリッド(入力 a
の8×8表現)
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
bbbbbbbbaaaaaaaabbbbbbbb
bbbbbbbbaaaaaaaabbbbbbbb
bbbbbbbbaaaaaaaabbbbbbbb
bbbbbbbbaaaaaaaabbbbbbbb
bbbbbbbbaaaaaaaabbbbbbbb
bbbbbbbbaaaaaaaabbbbbbbb
bbbbbbbbaaaaaaaabbbbbbbb
bbbbbbbbaaaaaaaabbbbbbbb
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
ステップ2: b
で表される道路でオーバーレイする:
aaaaaaaabbbbbbbbaaaaaaaa
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@[email protected]@@@@@a
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####bbaaaaaaaabbbbbbbb
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
ステップ3:各行を線番号でオフセットする:
aaaaaaaabbbbbbbbaaaaaaaa
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@[email protected]@@@@@a
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####bbaaaaaaaabbbbbbbb
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
ルール:
- 先頭の空白や改行を許可します。
- 後続の空白と改行が許可されています。
- これはコードゴルフで最短のコードが勝てるようになっています
Here is an extra test case with all edge
cases in I can think of.
ベストアンサー
PHP 857バイト
誰もが
“ゴルフ”と呼べるものではありませんが、他に誰も何も入っていないようだから、これはスタートだと思いました。大規模ですが、うまくいくようです。私は時間があれば、明日はそれをゴルフにしようと努力するだろう。
function a($a,$b){$c=sizeof($a);$d=sizeof($a[0]);for($e=0;$e<$c;$e++){for($f=0;$f<$d;$f++){$A=$GLOBALS['h']=$a[$e][$f];$i=$GLOBALS['i']=$b[$e][$f];$B=j($i==1&&$b[$e-1][$f]>0);$C=j($i==1&&$b[$e][$f+1]>0);$D=j($i==1&&$b[$e+1][$f]>0);$E=j($i==1&&$b[$e][$f-1]>0);$F=j($i>0&&$b[$e-1][$f]>0);$G=j($i>0&&$b[$e][$f+1]>0);$H=j($i>0&&$b[$e+1][$f]>0);$I=j($i>0&&$b[$e][$f-1]>0);$J=j($i==1);$K=j($i==1||($i>1&&$b[$e-1][$f]>0));$L=j($i==1||($i>1&&$b[$e][$f+1]>0));$M=j($i==1||($i>1&&$b[$e+1][$f]>0));$N=j($i==1||($i>1&&$b[$e][$f-1]>0));$O=j($i>0);$P=$e*8;$g[$P].="$A$B$F$F$F$F$B$A";$g[$P+1].="$E$J$K$K$K$K$J$C";$l="$I$N$O$O$O$O$L$G";$g[$P+2].=$l;$g[$P+3].=$l;$g[$P+4].=$l;$g[$P+5].=$l;$g[$P+6].="$E$J$M$M$M$M$J$C";$g[$P+7].="$A$D$H$H$H$H$D$A";}}foreach($g as$h){echo str_repeat(' ', $i++)."$hn";}}function j($k){return($k)?strtr($GLOBALS['i'],'12','@#'):$GLOBALS['h'];}
テストケース
error_reporting(0);
$a=[[a,b,a],[b,a,b],[a,b,a]];
$b=[[1,1,1],[2,0,1],[2,0,0]];
a($a,$b);
出力
aaaaaaaabbbbbbbbaaaaaaaa
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@@@@@@@@@@@@@@@@@a
[email protected]@@@@@[email protected]@@@@@a
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####[email protected]@@@@@b
bb####bbaaaaaaaabbbbbbbb
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
テストケース
error_reporting(0);
$a=[['.', ',', '.', ',', '.', ',', '.'],['.', ',', '.', ',', '.', ',', '.'],['.', ',', '.', ',', '.', ',', '1']];
$b=[[0,1,0,0,1,2,0],[1,1,1,2,2,2,2],[0,2,0,0,0,1,0]];
a($a,$b);
出力
........,,,,,,,,........,,,,,,,,........,,,,,,,,........
........,@@@@@@,........,,,,,,,,[email protected]@@@@@@,,,,,,,,........
........,@@@@@@,........,,,,,,,,[email protected]@@@@@@######,,........
........,@@@@@@,........,,,,,,,,[email protected]@@@@@@######,,........
........,@@@@@@,........,,,,,,,,[email protected]@@@@@@######,,........
........,@@@@@@,........,,,,,,,,[email protected]@@@@@@######,,........
........,@@@@@@,........,,,,,,,,[email protected]@@@@@@,,####,,........
........,@@@@@@,........,,,,,,,,[email protected]@@@@@.,,####,,........
........,@@@@@@,........,,,,,,,,..####..,,####,,........
[email protected]@@@@@@@@@@@@@@@@@@@@@@,,,,,,,,..####..,,####,,........
[email protected]@@@@@@@@@@@@@@@@@@@@@@##############################..
[email protected]@@@@@@@@@@@@@@@@@@@@@@##############################..
[email protected]@@@@@@@@@@@@@@@@@@@@@@##############################..
[email protected]@@@@@@@@@@@@@@@@@@@@@@##############################..
[email protected]@@@@@@@@@@@@@@@@@@@@@@,,,,,,,,........,,####,,........
........,@@@@@@,........,,,,,,,,........,,####,,........
........,,####,,........,,,,,,,,........,@@@@@@,11111111
........,,####,,........,,,,,,,,........,@@@@@@,11111111
........,,####,,........,,,,,,,,........,@@@@@@,11111111
........,,####,,........,,,,,,,,........,@@@@@@,11111111
........,,####,,........,,,,,,,,........,@@@@@@,11111111
........,,####,,........,,,,,,,,........,@@@@@@,11111111
........,,,,,,,,........,,,,,,,,........,@@@@@@,11111111
........,,,,,,,,........,,,,,,,,........,,,,,,,,11111111
テストケース
error_reporting(0);
$a=[[p,p,p,p,h,h,h,p,p,p,p],[p,p,p,p,h,h,h,p,p,p,p],[p,p,p,p,h,h,h,p,p,p,p],[p,p,p,p,h,h,h,p,p,p,p],[p,p,p,p,h,h,h,p,p,p,p]];
$b=[[1,1,1,0,1,0,1,0,1,1,1],[1,0,1,0,1,0,1,0,1,0,1],[1,1,1,0,1,1,1,0,1,1,1],[1,0,0,0,1,0,1,0,1,0,0],[1,0,0,0,1,0,1,0,1,0,0]];
a($a,$b);
出力
pppppppppppppppppppppppppppppppphhhhhhhhhhhhhhhhhhhhhhhhpppppppppppppppppppppppppppppppp
[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@p
[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@p
[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@p
[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@p
[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@p
[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@p
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@p
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@p
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@p
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@p
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@p
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@p
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@p
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@p
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@p
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@p
[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@p
[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@p
[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@p
[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@p
[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@p
[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@[email protected]@@@@@@@@@@@@@@@@@@@@@p
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@h[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@[email protected]@@@@@ppppppppppppppppp
pppppppppppppppppppppppppppppppphhhhhhhhhhhhhhhhhhhhhhhhpppppppppppppppppppppppppppppppp