hello world文字列(「Hello world」、「Hello、World」など)およびソースコードを出力するプログラムを作成します。出力はstdoutまたは同等のものに書き込まれます。Hello World文字列はソースコードに埋め込まれています。
たとえば、の出力は
(some source code here)hello world(some source code here)
出力が再度コンパイルまたは解釈されると、同様の出力が作成されますが、hello world文字列には異なる句読点または大文字を使用する必要があります。たとえば、前の例では次の出力を作成できます
(some source code here)hello, wORld(some source code here)
これらの例の各「(ここのソースコード)」は、実行のたびに変更される場合もあれば、同じ場合もあります。
出力には、有効なhello world文字列を1回だけ含める必要があります。無効なhello world文字列をいくつでも含めることができます。ソースコードには任意の量のコメントを含めることができ、hello world文字列をコメントに埋め込むことができます。最初のプログラムには、ゼロまたは1つの有効なHello World文字列を含めることができますが、それ以上はできません。
次の句読点が有効です。
hello, world
hello world
helloworld
すべての大文字を使用できます。たとえば、これらは有効なhello world文字列です。
Hello, world
hellO WORld
HELLoworlD
これらの文字列は無効です。
Hello world
Hello(newline)world
Hello,world
Hello, Steve
次の条件のいずれかが満たされると、プログラムはすぐに失敗します。
- 以前の実行中に出力されたhello world文字列を出力します。
- 出力が同じ言語の有効なソースコードではなくなった、または
- 出力には、有効なhello world文字列が1つだけ含まれていません。
プログラムは、少なくとも2回の最初の実行が成功しない限り、このコンテストでは無効です。これは、3番目の出力が無効であることを意味します。プログラムの出力はランダムではない場合があります。最初の実行では常に同じ2番目の出力が作成され、2番目の実行では常に同じ3番目の出力が作成されます。
スコアは、初期プログラムのソースコードのバイト数として計算されます。最低スコアが勝ちます。
次のボーナスが適用されます(最大-60%):
- -5%*(N-2)。Nは、プログラムが無効な出力を生成するまでの実行のインデックスです。このボーナスの上限は-50%です。プログラムが12回以上成功すると、最大ボーナスを獲得できます。
- 出力(最初のソースコードを含む)に3つの有効な句読点の選択肢がすべて含まれている場合、-10%。
送信には最初のソースコードが含まれている必要があり、成功した実行の出力も含まれている必要があります。プログラムが12回以上成功した場合は、12回の実行の出力を追加します。
例
次の行は最初のソースコードです。実行するのは、最初の実行です。
hello world(some source code here)
次の行は、最初のソースコードコードからの出力です。これが最初の出力です。
hello, world(some source code here)
次の行は、2回目の実行からの出力です。2番目の出力です。
helloworld(some source code here)
最初の出力を実行すると、このプログラムは-10%のボーナスの対象となりました。つまり、2つの出力と1つの元のコードがあり、それらはすべて異なる句読点を持っています。さらに、2番目の出力が有効だったため、このプログラムはこのコンテストの対象となります。
次の行は、3回目の実行からの出力です。3番目の出力です。
Helloworld(some source code here)
次の行は、4回目の実行からの出力です。4番目の出力です。
hellworld(some source code here)
この出力は無効でした。最後の有効な実行のインデックスは4でした。このプログラムは、句読点からの-5%*(4-2)ボーナスと-10%ボーナスの対象です。これにより、合計で-20%になります。最初のソースコード(「hello world(ここにソースコード)」)の長さは34バイトであったため、最終スコアは27.2です。
hello world
か?