入力:
1
X
X
X
X XX XXXXXX X X X
X XX XXXXXX X X X
XXX X XX XXXXXX X X X
XXX X XX XXXXXX X X X
出力:
X.
X..
X...
X.... XX. XXXXXX. X.X.X.
X..... XX.. XXXXXX.. X.X.X..
XXX. X......XX... XXXXXX... X.X.X...
XXX.. X......XX....XXXXXX.... X.X.X....
入力:
2
XX
XX
XX
XX
XX
XX XX
XX XX
XX XX
XX XX
出力:
.XX
..XX
...XX
....XX
.....XX
..XX..XX
...XX..XX
....XX..XX
.....XX..XX
仕様:
- 入力として受け取らなければなりません
- ライトが左上から来るか右上から来るかを示すフラグ。両方のフラグが整数である限り、これは
1
or2
、-1
or1
、0
or65536
、またはあなたにとって便利なものになります。 X
またはで構成された行で、すべて同じ長さの文字(つまり、で埋め込まれた
)
- すべて
X
のが最後の行にあるか、そのX
下にあります(浮き建物がないことを意味します)
- すべて
- ライトが左上から来るか右上から来るかを示すフラグ。両方のフラグが整数である限り、これは
- 影を追加した行(建物)を出力する必要があります。これは、次の手順で実行されます。
- ライトが左上から来る場合
.
は、建物の高さと同じ高さと幅で、右端を過ぎた1つのスペースから右に向かって、sの直角三角形を描きます。 - それ以外の場合、右上からの場合は同じことを行いますが、左端を過ぎて左を指す1つのスペースから開始します。
X
sをsに変更して変更しないでください.
。そのままにしておきます。- 影には常に「部屋」があります。つまり、最後に3スペースの高さの建物がある場合、その後に少なくとも3スペースのパディングがあります。
- ライトが左上から来る場合
- これはcode-golfなので、バイト単位の最短コードが勝ちます!
@Janはい、できます。
—
ドアノブ
potato
とを使用することもできますwhile(1){}
。質問で引用されているように、「便利なものは何でも」。
:((。NET風味の)正規表現でこれを解決しようとしていましたが、
—
マーティンエンダー14
Regex.Replace
回避できないバグを見つけたと思います...今2つの問題がありますか?
@Doorknob誰かがこのルールを悪用して、入力にコード全体を含めるだけです。
—
ɐɔıʇǝɥʇuʎs
@Synthetica これは「標準的な抜け穴」の1つです。
—
ドアノブ
{}
and{-1*}
をフラグ値として使用できますか?