最初にプログラムを実行すると、整数シーケンスが出力されます。2回目の実行では、「メアリーは小さな子羊」の曲を印刷する必要があります。3回目の実行で、ASCIIイメージファイルが生成されます。
得点
スコアは、3回の実行それぞれの開始時のコードのバイト数とファイルコンテンツの合計になります。最も低いスコアが勝ちます。
たとえば、myprog
は1500バイトで、サイズは変更されませんが、実行ごとに4バイトのファイルを書き込むため、次の実行で何を行うかがわかります。スコアは1500 +(1500 + 4)+(1500 + 4)= 4508になります。
出力
最初の出力は、133個の整数のシーケンスで、単一のスペースで区切られています。
0 89 98 179 188 197 269 278 287 296 359 368 377 386 395 449 458 467 476 485
494 539 548 557 566 575 584 593 629 638 647 656 665 674 683 692 719 728
737 746 755 764 773 782 791 809 818 827 836 845 854 863 872 881 890 908
917 926 935 944 953 962 971 980 1079 1088 1097 1169 1178 1187 1196 1259
1268 1277 1286 1295 1349 1358 1367 1376 1385 1394 1439 1448 1457 1466 1475
1484 1493 1529 1538 1547 1556 1565 1574 1583 1592 1619 1628 1637 1646 1655
1664 1673 1682 1691 1709 1718 1727 1736 1745 1754 1763 1772 1781 1790 1808
1817 1826 1835 1844 1853 1862 1871 1880 1907 1916 1925 1934 1943 1952 1961
1970
2番目の出力は、正確にこのテキストです(大文字、句読点、空白を含みます-句読点の不一致は意図的なものです):
Mary had a little lamb,
Little lamb, little lamb,
Mary had a little lamb,
Its fleece was white as snow
And everywhere that Mary went,
Mary went, Mary went,
Everywhere that Mary went
The lamb was sure to go
It followed her to school one day
School one day, school one day
It followed her to school one day
Which was against the rules.
It made the children laugh and play,
Laugh and play, laugh and play,
It made the children laugh and play
To see a lamb at school
3番目の出力は、PPM ASCII(P3)形式のこのイメージで、というファイルに残されています
blue.ppm
。これはPNG形式の画像です。
PPMファイルは次のようになります。
P3 50 50 255
255 255 255 255 255 255 255 255 255 255 255 255 ...
...
255 255 255
ここに完全なPPMファイルのコピーがあります。
実行例(Linuxの場合)
# ls
myprog
# interpreter myprog
0 89 98 179 188 197 269 278 287 296 359 ...
# interpreter myprog
Mary had a little lamb,
Little ...
# interpreter myprog
# ls
blue.ppm
myprog
# cat blue.ppm
P3 50 50 255
255 255 255 255 255 ...
ルール
- あなたのコードはそれ自身を変更するかもしれません。
- 4回目のプログラムの実行は、未定義の動作です。
- 現在のディレクトリにあるファイルに書き込むことはできますが、このファイルのサイズは、各実行の開始時にスコアに追加されます。最終的なPPMファイルはこれから除外されます。
- 最初の2つの出力はstdout(または同様の)です。最後の出力はファイルに書き込まれ、標準出力には何も送信されません。
- 最初の2つの出力には、オプションで末尾の空白文字(スペースや改行など)を含めることができます。
- 圧縮または画像ライブラリを使用することはできません。独自の圧縮または画像関数を使用できますが、このコードをプログラムに含める必要があります。
- 標準の抜け穴は禁止されています。