穴#1を参照混乱している場合は、てください。
ハロウィーンの間にキャンディのバケツを集めた後、すべての子供は何をしますか?
もちろん、タイプとサイズで並べ替えます1!
チャレンジ
さまざまな形やサイズのキャンディの袋が捨てられている場合、以下に基づいてキャンディを左から右に並べ替えます。
- 最初:キャンディーの量(1つのうち5つが他の4つよりも多くなります)
- 2番目(最初の後に何らかのつながりがある場合):量が同じ場合、(キャラクターの数に基づいて)より多くの内部領域を持つキャンディーがより高いランクになります。
2番目の並べ替えの後も引き分けがある場合は、どちらかを最初に選ぶことができます。
入力
stdinを介してキャンディーが提供されます。散らかった。以下の例を参照してください。
出力
正しい順序で注文したキャンディを出力します。OCDフィッシュ2をなだめるために、キャンディーは常に非常にきれいな列に配置する必要があります。同じ種類のキャンディーは、直接下に配置する必要があります。以下の例を参照してください。
「インテリア」とはどういう意味ですか?
キャンディーの内部領域は、キャンディー全体を構成するキャラクターの合計によって測定されます。
「境界線」内の空白は、キャンディの領域の一部と見なされます。
境界線は、接続された文字のループであり、各文字は対角線上または隣の文字の隣にあります。
例えば、
+--------+
| |
| |
| |
| |
+--------+
よりも面積が大きい
XXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXX
全体的に文字数が少なくても。
例
入力:
_ \| |/ _
_ lllllll -*------------*- -\ /- lllllll
lllllll lllllllll | /\ /\ / | +|\ooooo/|+ lllllllll
lllllllll llll+llll | / \/ \/ | ||o o|| llll+llll
llll+llll lllllllll -*------------*- ||o o|| lllllllll
lllllllll lllllll /| |\ +|/ooooo\|+ lllllll
lllllll | -/ \- |
| | _ |
| -\ /- | lllllll |
| +|\ooooo/|+ | lllllllll |
| ||o o|| | llll+llll |
| ||o o|| + lllllllll rrr--rrr +
+ +|/ooooo\|+ lllllll rr||rr
-/ \- | | || |
| | || |
| | || |
| | || |
| \| |/ | || |
+ -*------------*- | || |
| /\ /\ / | | || |
-\ /- | / \/ \/ | | || |
+|\ooooo/|+ -*------------*- rr||rr
||o o|| /| |\ rrr--rrr
||o o||
+|/ooooo\|+
-/ \-
になるだろう
_ \| |/ -\ /- rrr--rrr
lllllll -*------------*- +|\ooooo/|+ rr||rr
lllllllll | /\ /\ / | ||o o|| | || |
llll+llll | / \/ \/ | ||o o|| | || |
lllllllll -*------------*- +|/ooooo\|+ | || |
lllllll /| |\ -/ \- | || |
| | || |
| \| |/ -\ /- | || |
| -*------------*- +|\ooooo/|+ | || |
| | /\ /\ / | ||o o|| | || |
| | / \/ \/ | ||o o|| rr||rr
+ -*------------*- +|/ooooo\|+ rrr--rrr
/| |\ -/ \-
_
lllllll \| |/ -\ /-
lllllllll -*------------*- +|\ooooo/|+
llll+llll | /\ /\ / | ||o o||
lllllllll | / \/ \/ | ||o o||
lllllll -*------------*- +|/ooooo\|+
| /| |\ -/ \-
|
|
|
|
+
_
lllllll
lllllllll
llll+llll
lllllllll
lllllll
|
|
|
|
|
+
_
lllllll
lllllllll
llll+llll
lllllllll
lllllll
|
|
|
|
|
+
2番目の例:
qq \/
qq qq qq +-----+
qq qq qq + |
jjjjjjjj qq qq | |
jjjjjj \/ qq qq | |
jjjj +-----+ <---notice that the left side is not connected qq +-------+
jj jj + | <--> <-->
j j | |
jj <> jj | | <--> qq jjjjjjjj
jj jj +-------+ qq jjjjjj
jjjj qq qq jjjj
qq qq jj jj
j j
+---------------------------------------------------------+ jj <> jj
ooooo +---------------------------------------------------------+ jj jj
o yyyyyy jjjj
o ww - notice diagonal border, allowed
o ww jjjjjjjj
o yyyyyy ooooo ooooo jjjjjj
ooooo o yyyyyy o yyyyyy jjjj
o ww o ww jj jj
o ww o ww j j
o yyyyyy o yyyyyy jj <> jj
ooooo ooooo jj jj
jjjj
解決:
qq ooooo jjjjjjjj <--> \/ +---------------------------------------------------------+
qq o yyyyyy jjjjjj +-----+ +---------------------------------------------------------+
o ww jjjj <--> + |
qq o ww jj jj | |
qq o yyyyyy j j <--> | |
ooooo jj <> jj +-------+
qq jj jj
qq ooooo jjjj \/
o yyyyyy +-----+
qq o ww jjjjjjjj + |
qq o ww jjjjjj | |
o yyyyyy jjjj | |
qq ooooo jj jj +-------+
qq j j
ooooo jj <> jj
qq o yyyyyy jj jj
qq o ww jjjj
o ww
qq o yyyyyy jjjjjjjj
qq ooooo jjjjjj
jjjj
qq jj jj
qq j j
jj <> jj
qq jj jj
qq jjjj
列の間隔は1文字で、上部で水平方向に配置されることに注意してください。また、各キャンディーは正確な列にあり、各キャンディーの間には1文字のスペースがあります。
得点
これはコードゴルフなので、最短のプログラム(バイト単位)が優先されます。
1他に何をしますか?明らかに、収集したキャンディーの量にあなたの素晴らしい力と力を見せたいですか?
2私はあなたが何を考えているか知っています!魚はキャンディーの湾曲したボウルを覗く必要があるため、とにかく歪んでしまいます!さて、私の魚は(死ぬ前に)長方形の水槽に住んでいました。