タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

7
線上のフラクタル点
時々、私が本当に退屈している(本当に退屈している)とき、線分を描き、その上に点を描くのが好きです。 まず、特定のサイズの線分を描画します。これは、Nの値に対して2 ^ Nです。線は、一連の .文字でます。 ................ 次に、左端にポイントをプロットします。ポイントはX文字ます。 X............... 次に、パターンに従います。最後にプロットしたポイント(これをAと呼びます)から開始し、ライン上の次のプロットポイント(B)に進みます(必要に応じて折り返します)。次に、に進みますライン(C)上の次のプロットポイントます。次に、この3番目のポイント(C)と既にプロットされている次のポイント(D)の中間に新しいポイントをプロットします。 行を折り返すたびに、「中間」は折り返しの方法で決定されます。新しくプロットされたポイントは、常にCの右側にあります。 次の行が現在の行だったとしましょう。次の2点をプロットする方法を次に示します。この例では、重要な各ポイントに文字でラベルを付けます。 X...A...X.X...X. ^ X...A...B.X...X. ^ X...A...B.C...X. ^ X...A...B.C...D. ^ X...X...X.X.A.X. ^ X...X...X.X.A.B. ^ C...X...X.X.A.B. ^ C...D...X.X.A.B. ^ X.A.X...X.X.X.X. ^ 前の例に戻ると、次の点が線の中央にプロットされます。 X.......X....... これはおそらく少し特殊なケースです。次のポイントに進むと、開始した場所がそのまま残ります。唯一の有用な中間点は、それ自体の上に点をプロットするのとは対照的に、「循環」中間点(線上の中間点)です。 以下は、ここから最後までの線にプロットする一連のポイントです。 X.......X....... X.......X...X... X.......X.X.X... X...X...X.X.X... X...X...X.XXX... X.X.X...X.XXX... X.X.X...XXXXX... 次のポイントをプロットする余地はもうありません。隣接する2つのポイントの間に挟まれる必要があるため、N = 4の指定された値の最大深度に達しました。上記のリストの最後の行は「complete 」 チャレンジ 目標は、指定されたNの値に対して完了した行を出力/返す最短のプログラム/名前付き関数を作成することです。上記はN = 4を示しています。 入力 入力は単一の非負整数Nになります。生成された行の長さは2 …
12 code-golf 

1
適切にコードゴルフをしていますか?
私はコードゴルフをきちんとやっているのか興味があります。Pythonで小さなハッシュプログラムを単一のステートメントにするという課題を自分自身に設定しました。私は最初に始めました: from itertools import permutations from string import ascii_lowercase from random import sample def test(): chars = sample(ascii_lowercase, 9) sums = list(map(h, permutations(chars))) if len(set(sums)) == len(sums): print("unique results for permutations of given string") else: print("duplicate entries present in test results") def h(s): r = 0 for i in range(len(s)): …
12 code-golf  tips  python 

2
論理ドット形状
ゲーム 最近、私の時間の大部分は、ロジックドットと呼ばれる、携帯電話で中毒を起こすゲームに費やされました。ゲームのディスプレイを表示するとルールを説明するのが簡単になるため、ここでは未解決の解決済みパズルのスクリーンショットを示します。 ここで、注目すべき3つの主な点があります。 ゲームボード(中央にある4x4の正方形のグリッド) 必要な形状(上から2番目のバー、スコアおよびメニューの下など)のすべての線、またはa1つの長方形によるリンクされたドット 解決策のために、列に必要なドットの数を示す行と列の数値 ゲームの目的は、必要な形状をグリッドに収めることです。図形を回転させることはできますが、斜めに入れることはできません。 ソリューションでは、すべてのシェイプが一度だけ作成されることに注意してください(必要なシェイプに一度だけあるため)。この場合、それらはすべて水平ですが、垂直にすることもできます。正方形に塗りつぶされたピンク色は、使用されていない正方形を示します。 これは、より大きく、わずかに複雑なグリッドです。 未解決のパズルには、すでにいくつかの正方形が塗りつぶされていることに注意してください。灰色の正方形は、ドットを配置できないブロックされた正方形を示します。テールのあるドットは、そのスポットにドットがあることを示し、テールの方向で少なくとも 1つ以上のドットにリンクしていますが、他の方向(反対方向を含む)ではリンクしていません。 表記法 この投稿の残りの部分では、次の記号を使用してボードを参照します。 <、>、^、v-事前に配置されたドットがポイントの方向に伸びるテールを持つことを示します *-ドットを示します。未解決のグリッド(入力)で指定された場合、それは個々の形状です。出力の場合は、周囲のドットに接続されます。 #-ブロックされたグリッドスクエアを示します(ドットを配置できない場所) -、| (ハイフンとバー)-左右の尾を持つドットと、上下の尾を持つドットをそれぞれ示します **(スペース文字)-**空のスペースを示します これらのシンボルを使用すると、後者の例のケース(未解決)は次のように表すことができます。 < # ^ # ソリューションは次のように表すことができます。 *< * * * * * * * *#* ^ # * 2つの図形が水平、垂直、または斜めに接触することはできないため、次のケースは無効です。 *** ** ** チャレンジ あなたの課題は、4x4から9x9までのロジックドットパズルを解決することです。4行の入力を受け取り、次にゲームボードを受け取ります。行は次のようになります。 1行目、図形-検索する図形。それぞれフォームsizexquantity(3x2長さ3の2つの図形など)で指定され、スペースで区切られます。例の行:3x1 2x1 1x1 2行目、列-各列に必要なドット数のスペース区切りリスト。例の行:1 1 2 2 …

14
複雑性のないコルモゴロフ(-Smirnov)
統計では、2つのデータサンプルが同じ基礎分布からのものかどうかを知ることが役立つ場合があります。これを行う1つの方法は、2サンプルのKolmogorov-Smirnov検定を使用することです。 あなたの仕事は、ソートされていない2つの非負整数配列を読み取り、テストで使用される主な統計を計算するプログラムを作成することです。 配列を指定Aし、実数x、分布関数を定義するFことにより、 F(A,x) = (#number of elements in A less than or equal to x)/(#number of elements in A) 与えられた2つの配列A1とA2を定義します D(x) = |F(A1, x) - F(A2, x)| 2サンプルのコルモゴロフ-スミルノフ統計は、Dすべての実数の最大値ですx。 例 A1 = [1, 2, 1, 4, 3, 6] A2 = [3, 4, 5, 4] 次に: D(1) = |2/6 - 0| …

9
ペアゴルフツインプライムとCollat​​zシーケンス
これは、Recover the mutated source code問題に触発された新しい種類の挑戦です。 2つのプログラムまたは関数を両方とも同じ言語で作成する必要があります。最初のタスクはタスク#1を解決し、2番目のタスクはタスク#2を解決する必要があります。 スコアは、長いプログラムと2つのプログラムのソースコード間のレーベンシュタイン距離の合計になります。スコアが低いほど良いので、プログラムの長さを短く保ちながら、2つのソリューションを似たものにするようにしてください。 タスク1 正の整数が与えられ、スペースまたは改行で区切られNたCollat​​zシーケンスを出力する必要Nがあります。末尾の区切り文字が許可されます。 Collat​​zシーケンスの最初の要素はNです。残りの要素は、後続のai − 1a私−1a_{i-1}基づいて生成されます。 ai={ai−123ai−1+1 if ai−1 is even if ai−1 is oddai={ai−12 if ai−1 is even3ai−1+1 if ai−1 奇妙です a_i = \begin{cases} \frac{a_{i-1}}{2} & \text{ if } a_{i-1} \text{ is even} \\ 3a_{i-1} + 1 & \text{ if } a_{i-1} \text{ …

5
NをM個の整数の積として書く方法はいくつありますか?
整数Nが与えられた場合、M整数> 1の積として表現できる方法の数をカウントします。 入力は単純にNおよびMであり、出力は個別の整数グループの総数です。つまり、整数を複数回使用できますが、各グループは別個でなければなりません(存在する3 x 2 x 2場合2 x 2 x 3はカウントされません)。 制約 1 < N <2 31 1 < M <30 例 入力30 2は33つの方法で表現できるため、outputを提供します。 2 x 15 3 x 10 5 x 6 入力16 3はoutputを提供します。これは1、異なるグループが1つしかないためです。 2 x 2 x 4 入力2310 4は出力を与えます10: 5 x 6 x 7 x 11 3 …

25
デイ2のランダムゴルフ:正規分布の数値
シリーズについて まず、これを他のコードゴルフチャレンジと同様に扱い、シリーズについてまったく心配することなく答えることができます。ただし、すべての課題にリーダーボードがあります。最初の投稿で、シリーズに関する詳細情報とともにリーダーボードを見つけることができます。 このシリーズにはたくさんのアイデアが並んでいますが、将来の課題はまだはっきりしていません。何か提案があれば、関連するサンドボックスの投稿でお知らせください。 穴2:正規分布の数値 これがまだ行われていないなんて信じられない!正規分布から描画して、乱数を生成します。いくつかのルール(それらの大部分はおそらくほとんどの投稿で自動的にカバーされますが、それらのいくつかは非常に異なる言語間の結果の一貫性を確保するために配置されています): あなたは取るべき入力として2非負整数シード:Sと量Nのリターンに数字のを。出力はN、平均が0で分散が1の正規分布から描かれた浮動小数点数のリストである必要があります。提出物に同じシードが与えられるたびにS、同じ数が生成されます。特に、で1回とで1回呼び出される場合、2つの出力の最初のエントリは同一である必要があります。さらに、少なくとも2 16個の異なる値が異なるシーケンスを生成する必要があります。(S, N1)(S, N2)min(N1, N2)S 文書化された任意の組み込み乱数ジェネレーターを使用して、(ほぼ)均一な分布から数値を引き出すことができます。ただしS、それに渡すことができ、少なくとも2 16の異なるシードをサポートします。もしあなたがそうするなら、、RNGリクエストした特定の番号に対して少なくとも2 20個の異なる値を返すことができるはずです。 利用可能なユニフォームRNGの範囲が狭い、シードできない、またはサポートするシードが少なすぎる場合、最初に組み込みのRNGの上に十分に大きな範囲を持つユニフォームRNGを構築するか、独自のRNGを実装する必要があります を使用し適切なRNGを種。このページはそのために役立つかもしれません。 正規分布を生成するための確立されたアルゴリズムを実装しない場合は、正確性の証明を含めてください。どちらの場合でも、選択するアルゴリズムは、理論的に正確な正規分布を生成する必要があります(基礎となるPRNGの制限または精度が制限されたデータ型を除く)。 実装は、浮動小数点数(少なくとも32ビット幅)を使用して返す必要がありますまたは固定小数点数(少なくとも24ビット幅)を、すべての算術演算では、選択したタイプの全幅を使用する必要があります。 以下のように、正規分布またはガウス積分に直接関連する組み込み関数を使用しないでください。 Error関数やその逆関数など。 完全なプログラムまたは関数を作成し、STDIN、コマンドライン引数、関数引数、またはプロンプトを介して入力を取得し、戻り値またはSTDOUT(または最も近い代替)に出力して出力を生成できます。 SそしてN、それぞれが2 20未満の非負の整数になりますます。出力は、便利で明確なリスト形式または文字列形式です。 これはコードゴルフなので、最短の提出(バイト単位)が勝ちです。そしてもちろん、ユーザーごとの最短投稿もシリーズの総合リーダーボードに入ります。 リーダーボード シリーズの最初の投稿はリーダーボードを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、すべての回答を見出しで開始してください。 # Language Name, N bytes N提出のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes (言語は現在表示されていませんが、スニペットはそれを必要とし、解析します。将来、言語ごとのリーダーボードを追加する可能性があります。)

3
最も近いパーティション番号
整数のパーティションの数は、整数を正の整数の合計として表すことができる方法の数です。 例えば: 5 4 + 1 3 + 2 3 + 1 + 1 2 + 2 + 1 2 + 1 + 1 + 1 1 + 1 + 1 + 1 + 1 番号5を表す方法は7つあります。したがって、7は番号5に対応するパーティション番号です。 パーティション番号:OEIS:#A000041 行き方 入力として正の整数を取り、入力番号に最も近い2つのパーティション番号を生成する2 つの数値を出力するプログラムを作成します。 入力は1つの正の整数でなければなりません。 入力がそうでない場合パーティション番号で番号に最も近い2つのパーティション番号を生成する2つの異なる正の整数でなければなりません。(2つのパーティション番号が出力番号の1つの候補に等しい場合、どちらを選択してもかまいません。) 入力がパーティション番号である場合、出力は入力番号を生成する1つの正の整数でなければなりません。 入力および出力は、合理的な形式である可能性があります。 入力が1億を超えないことを想定できます(たとえば、出力が95を超えることはありません)。 パーティション番号を計算する組み込み関数は、他の標準の抜け穴と一緒に許可されていません。 これはcode-golfなので、最小バイト数が勝ちます。 パーティション番号:OEIS:#A000041 例 Input: …

1
コードSlidey Puzzleをコーディングしてください!
最も認識可能なスライディングパズルは15パズルです。4 x 4のグリッド、15のタイル、1つの空のグリッドスペースがあります。タイルは空のスペースにのみ移動でき、常にグリッドに沿っている必要があります。 レッツは、二次元のような一般スライディングパズル定義W、幅Hの高いグリッド(W、Hのいくつかの数含まれて正の整数の両方)同一のマークされていないタイル(0との間をW × Hそれらの)に配置されたグリッドにスナップ任意の方法(重複なし)、空のグリッドスペースが残りの領域を埋めます。 たとえば、WとHが3で、タイルがTあり、空のスペースがE多くのサイディングパズル配置の1つである場合、 TTT TET EET これらのパズルのために4つの可能な動きがあります。突き出すすべてのアップ、突き出すすべてのダウンは、突き出すすべてが左、または突き出すすべての権利。ある方向の「シェービング」により、すべてのタイルは、別のタイルまたはグリッド境界に到達するまで、可能な限りその方向に移動します。時々、突き出してもグリッドのレイアウトは変わらないことがありますが、 サンプルのグリッドが正しく押し込まれた場合、結果は TTT ETT EET 突き出した結果は TTT TTE TEE 結果を削った EET TET TTT (左端Tの両方が移動したことに注意してください) この場合、突き上げてもグリッドのレイアウトは変更されません。 タイルは区別できないため、これらのパズルには「解決済み」状態がないことに注意してください。また、パズルは、ひとたび押し出された後に戻ることが不可能なレイアウトで始まる場合があることに注意してください(3 x 3グリッドの中央にある1つのタイルなど)。 チャレンジ 印刷可能なASCIIのみを使用して、M文字幅とN文字高さ(正の整数M、Nの両方)の2つの長方形のコードブロックを書き込みます。1つのコードブロックはスライドパズルのタイルを表し、もう1つのコードブロックは空のグリッドスペースを表します。 これらの2つのコードブロックをW by Hグリッドに配置すると、コードで表されたスライドパズルが作成され、テキストファイルとして保存して通常のプログラムとして実行できます。これらの種類のプログラムを実行すると、stdinを介して1から4までの数字をユーザーに要求するはずです。1は上、2は下、左は3、右は4です。ユーザーが番号を入力してEnterキーを押すと、プログラムはソースコードタイルをその方向に押し出す方法を計算し、新しいパズルレイアウトをファイル(新しいファイルまたは同じファイル)に保存してから終了します。 このプロセスは、突き出すたびに生成される新しいスライドパズルコードファイルで無期限に繰り返すことができます。 例 タイルコードブ​​ロックが次のようになっているとします // my // tile 空のグリッドスペースコードブロックは次のようになります //empty //space (M = 7、N = 2、これはもちろん実際のコードではありません) これらの2つのブロックの有効なスライドパズルの配置は、ユーザーが何らかの方向に押し出すために実行できる、使用している言語でプログラムを作成する必要があります。 サンプルグリッドのコード表現は次のとおりです。 …

4
Hツリーディレクトリ
プログラマーは、多くの場合、フラクタルを描くことに夢中です。新しいコンピューターベースのメディアが必要だと思います。 Hツリーは、水平線と垂直線からなるフラクタルのかなり単純なタイプです。これは、10回目の繰り返しです(ウィキペディア提供): ここで、イメージの各行が標準的なコンピューターファイルシステムのディレクトリ(フォルダー)であると想像してください。最も小さい線を除くすべての線は、それよりも小さい2本の線と交差します。これら2つの小さな行は、大きな行のサブディレクトリです。したがって、中央の大きな水平線は、画像内の残りの行の親、祖父母などである2つの最大の垂直線の親ディレクトリです。 チャレンジ stdinまたはコマンドライン(または最も近い代替)を介して正の整数Nを取り込み、HツリーフラクタルのN番目の反復をミラーリングするディレクトリツリーを作成するプログラムを作成します。 最初の反復(N = 1)は単一の水平線です。後続の各反復で、垂直線または水平線の新しいセットが現在の行の最後に追加されます。したがって、N = 2の場合、2本の垂直線が追加され(H形状を作成)、N = 3の場合、4本の水平線が追加されます。 ルートディレクトリの名前は常にtree。サブディレクトリの名前は、使用して、彼らは彼らの親線に対してである方向に一致している必要がありright、left、upとdown。 ルートディレクトリは常に水平線であるので、それは常に持っていますrightし、leftサブディレクトリ。しかし、これら二つは持っているだろうupし、downサブディレクトリ、およびそれらを持つことになりますrightし、leftそうで再び、と。 反復制限の終わりのディレクトリは空でなければなりません。 例 N = 3の場合、ディレクトリツリーは次のようになります。 tree right up down left up down 追加情報 理想的には、treeディレクトリはソースコードと同じフォルダにポップアップしますが、作業ディレクトリに移動しても問題ありません。 あなたがtree作成される場所に既存のディレクトリは存在しないと仮定するかもしれません。 プログラムは常に同じ一般的な最新のオペレーティングシステム(Mac / Windows / Linux)で実行されると仮定できます。基本的に、すべてのOSで機能しないファイル区切り文字の使用について心配する必要はありません。 得点 これはコードゴルフなので、バイト単位の最短コードが優先されます。

1
異なる言語でいくつかのクイーンストライプをゴルフ
m個の言語を選択し、各言語でn個のプログラムを作成します。各プログラムの長さはn * mです。K番目のプログラムを出力すべきKプログラム番号で注文した各プログラムの番目の文字、。 たとえば、この投稿では(デモンストレーションのみ。改行やタブを含む任意の文字を使用できます): ABC DEF GHI プログラムABCはを出力する必要ADGがあり、プログラムDEFし、それぞれGHI出力する必要がBEHありCFIます。 リスト内のすべてのプログラムは、通常のクインであってはなりません。だから、ABCとADG異なっている必要があります。同じことが他の2つのプログラムにも当てはまります。これを可能にするには、n * mは少なくとも2でなければならないことに注意してください。 特定の順序で言語を使用する必要はありません。したがって、言語Aで2つのプログラムを作成し、次に言語Bで3つのプログラムを作成し、次に言語Aで別のプログラムを作成できます。ただし、すべての言語はまったく同じ回数使用する必要があります。 プログラムの先頭/末尾の改行と出力は関係ありません。 最小n(m + 10)/ m 3の答えが勝ちです。しかし、少なくとも3つの言語を使用した場合、ほとんどの言語の回答に対して少なくとも+100の賞金を授与します。賞金の締め切り:改善のない1週間後、または答えが基準を満たさなかった場合は2015年3月1日 言語に関する規則 異なる名前の任意の言語、または一般に十分に異なると考えられる異なるバージョン(Python 2/3、ECMAScript 5/6など)を使用できます。ただし、プログラムは、使用した他の言語とまったく同じものを出力してはなりません。

1
小さなダイアモンドスクエアアルゴリズム
ダイアモンドスクエアアルゴリズムは、フラクタル地形(ハイトマップ)生成アルゴリズムです。ここで、それがどのように機能するかについての素晴らしい説明を見つけることができます: http://www.gameprogrammer.com/fractal.html(参照として使用されます。) http://www.playfuljs.com/realistic-terrain-in-130-lines/(素晴らしいJS実装。おそらく、彼のレンダラーを盗むことをお勧めします。このアルゴリズムがhttp:// demosに対応しているものをご覧ください。 playfuljs.com/terrain/。) 一般的なアイデアは、シードとして4つの角を持ち(a)、それらの4つの角を平均し、たとえば-0.5〜0.5(b)の間のランダムな値を追加することで中心点の高さを計算することです。これをグリッドに適用すると、再びダイヤモンドのグリッド(正方形45°)が得られ、同じ(c、d)を繰り返しますが、ランダムな範囲は小さくなります(例:-0.125から0.125など)。 プログラムはいくつかの入力を受け入れる必要があります。 l=1,2,3,...辺の長さの正方形グリッドのサイズを決定する整数2^l+1。で、l=10あなたは約百万の番号を保存する必要があります。 各コーナーに4つのシード(浮動小数点) ランダム範囲の初期の大きさを意味する0<h<1(Hリンクの)粗さを決定するパラメーター a,bランダム範囲の初期の下限と上限を表すパラメーターでh、各洗練ステップで乗算されます。(乱数はaとの間で一様に選択されbます。 出力は、完成した2Dグリッドで構成されている必要があります。 したがって、大まかなアルゴリズムは次のようになります。 Create a square grid with sidelength 2^l+1 Place seed values in the corners Repeat: | Perform square steps | Refine Range: a = a*h; b=b*h; | Perform diamond steps | Refine Range 注意すべき詳細が1つあります。グリッドの境界には、ダイヤモンドの頂点が3つしかありません。したがって、これらの3つのポイントの平均のみを計算する必要があります。 いくつかの例の視覚化(使用したパラメーターを教えてください)はオプションですが、高く評価されており、もちろんバイトカウントには追加されません。 このアルゴリズムのわずかに変化した実装は、ここで見つけることができます:平行投影ボクセル地形ジェネレータ 2dのハイトマップをグレースケールイメージとして表示するための小さな描画関数をjavascriptで作成しました。http://jsfiddle.net/flawr/oy9kxpsx/ あなたの誰かが3Dに夢中になっていて、3Dで地図を見るためのスクリプトを作成できるなら、私に知らせてください!=)
12 code-golf  random  grid 

2
同じ合計で数値をグループ化する
数字の正方形グリッド(0-9)が与えられると、タスクは次のように数字をグループ化する方法の1つを出力します。 各桁は1つのグループの一部です すべてのグループの桁数は同じです すべてのグループは、1つの多角形の形状で区切られます(これは、各グループに1つの要素がない限り、グループ内のすべての数字が同じグループの少なくとも1つの数字の隣にあることを意味します)。 すべてのグループの合計は同じです 入力グリッドは常に正方形です。任意の入力メソッドを選択できます(関数またはメソッドへの引数の提供を含む)。さらに、入力は、プログラムが数字をグループ化するグループの数を提供します。 入力例: 入力形式がであるとしますstringOfDigits numberOfGroups。 入力例は次のとおりです。 156790809 3 これは(のグリッドsqrt(9) * sqrt(9))に変換されます 1 5 6 7 9 0 8 0 9 3つのグループに分割する必要があり、各グループに9 / 3 = 3は同じ合計の要素が必要です。 出力:出力は、オプションのスペースと書式設定用の改行を含む数字の文字列で、各数字の後にa-zグループを示す文字が続く必要があります。numberOfTotalDigits / numberOfGroups各グループには正確に要素が必要です。何かを26以上のグループに分割する必要はありません。 出力例: 1a 5a 6b 7c 9a 0b 8c 0c 9b すべてaのsをbsに、bsをasに置き換えることも同様に有効であることに注意してください。各グループが個別の文字で示されている限り、出力は有効です。 さらに、改行/スペースはオプションなので、ほとんどのプログラムはこれに沿って何かを出力することを期待しています。 1a5a6b7c9a0b8c0c9b この場合、グループのすべての桁を追加a、bまたはc15加えて作る、すべてのグループがいくつかのポリゴンに拘束されています。 無効な出力: 1a 5a 6b …
12 code-golf 

22
Stöhrシーケンスを生成する
私はRubyを学び、この問題を解決するための最初の重要なコードを書きました。 課題は、第一生成するn個の要素Stöhr配列、S以下のように定義されます: S [0] = 1 S [n]は、シーケンス内の2つの異なる前の要素の合計として表現できない最小数です。 したがって、シーケンスは1、2、4、7、10で始まります。11(= 1 + 10)と12(= 2 + 10)は前の要素の合計ですが、13はそうではないため、次の要素は13です。 最短のコードを探しています。私自身のRubyの長さは108文字ですが、投稿する前に他の人がどのようなものを思いつくのを待つのでしょうか?

1
ハロウィーンキャンディの整理-穴#4
穴#1を参照混乱している場合は、てください。 ハロウィーンの間にキャンディのバケツを集めた後、すべての子供は何をしますか? もちろん、タイプとサイズで並べ替えます1! チャレンジ さまざまな形やサイズのキャンディの袋が捨てられている場合、以下に基づいてキャンディを左から右に並べ替えます。 最初:キャンディーの量(1つのうち5つが他の4つよりも多くなります) 2番目(最初の後に何らかのつながりがある場合):量が同じ場合、(キャラクターの数に基づいて)より多くの内部領域を持つキャンディーがより高いランクになります。 2番目の並べ替えの後も引き分けがある場合は、どちらかを最初に選ぶことができます。 入力 stdinを介してキャンディーが提供されます。散らかった。以下の例を参照してください。 出力 正しい順序で注文したキャンディを出力します。OCDフィッシュ2をなだめるために、キャンディーは常に非常にきれいな列に配置する必要があります。同じ種類のキャンディーは、直接下に配置する必要があります。以下の例を参照してください。 「インテリア」とはどういう意味ですか? キャンディーの内部領域は、キャンディー全体を構成するキャラクターの合計によって測定されます。 「境界線」内の空白は、キャンディの領域の一部と見なされます。 境界線は、接続された文字のループであり、各文字は対角線上または隣の文字の隣にあります。 例えば、 +--------+ | | | | | | | | +--------+ よりも面積が大きい XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 全体的に文字数が少なくても。 例 入力: _ \| |/ _ _ lllllll -*------------*- -\ /- lllllll lllllll lllllllll | /\ /\ …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.