Wenn Sie Ihr Programm zuerst ausführen, sollte es eine ganzzahlige Sequenz drucken. Der zweite Durchgang sollte das Lied "Mary hatte ein kleines Lamm" drucken. Der dritte Lauf sollte eine ASCII-Image-Datei erzeugen.
Wertung
Ihre Punktzahl ist die Summe Ihrer Code-Bytes und des gesamten Dateiinhalts zu Beginn jedes der drei Läufe. Die niedrigste Punktzahl gewinnt.
Zum Beispiel myprog
ist es 1500 Byte und ändert seine Größe nicht, schreibt aber bei jedem Lauf eine 4-Byte-Datei, damit es weiß, was beim nächsten Lauf zu tun ist. Die Punktzahl wäre 1500 + (1500 + 4) + (1500 + 4) = 4508.
Ausgabe
Die erste Ausgabe ist diese Folge von 133 Ganzzahlen, die durch einzelne Leerzeichen getrennt sind:
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
Die zweite Ausgabe ist genau dieser Text (einschließlich Großbuchstaben, Interpunktion und Leerzeichen - die inkonsistente Interpunktion ist beabsichtigt):
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
Die dritte Ausgabe ist dieses Bild im PPM ASCII (P3) -Format, das in einer aufgerufenen Datei verbleibt
blue.ppm
. Dies ist das Bild im PNG-Format:
Die PPM-Datei sollte ungefähr so aussehen:
P3 50 50 255
255 255 255 255 255 255 255 255 255 255 255 255 ...
...
255 255 255
Hier finden Sie eine Kopie der vollständigen PPM-Datei .
Beispiellauf (unter 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 ...
Regeln
- Ihr Code kann sich selbst ändern.
- Das vierte Ausführen des Programms ist ein undefiniertes Verhalten.
- Sie können in eine Datei im aktuellen Verzeichnis schreiben, aber die Größe dieser Datei erhöht Ihre Punktzahl zu Beginn jedes Laufs. Die endgültige PPM-Datei ist davon ausgeschlossen.
- Die ersten beiden Ausgänge sind stdout (oder ähnlich). Die letzte Ausgabe wird in eine Datei geschrieben, ohne dass etwas an stdout gesendet wird.
- Die ersten beiden Ausgänge können optional ein nachfolgendes Leerzeichen (z. B. Leerzeichen oder Zeilenvorschub) haben.
- Sie dürfen keine Komprimierungs- oder Bildbibliotheken verwenden. Sie können Ihre eigenen Komprimierungs- oder Bildfunktionen verwenden, dieser Code muss jedoch in Ihrem Programm enthalten sein.
- Die Standardlücken sind verboten.