Solutions to the 2006 ICFP Programming Contest.
Warning: spoilers below!
The Universal Machine is implemented in src/um.c. Compile it with
make
and run it on a UM program:
./um sandmark.umz # benchmark
./um codex.umz
Benchmark times:
# time ./um sandmark.umz
# without optimization
./um sandmark.umz 86.20s user 0.00s system 99% cpu 1:26.20 total
# with -O3
./um sandmark.umz 30.06s user 0.00s system 99% cpu 30.065 total
Get the next program:
echo '(\\b.bb)(\\v.vv)06FHPVboundvarHRAk\np' | ./um codex.umz > codex_output
tail -c +196 codex_output > umix.um
The fixed program is in hack.bas. We find the passwords of ohmega
and howie
.
user | password |
---|---|
ohmega | bidirectional |
howie | xyzzy |
ftd | falderal90 |
hmonk | COMEFROM |
INTRO.LOG=200@999999|35e6f52e9bc951917c73af391e35e1d INTRO.MUA=5@999999|b9666432feff66e528a17fb69ae8e9a INTRO.UMD=10@999999|7005f80d6cd9b7b837802f1e58b11b8 INTRO.QBC=10@999999|e6ee9c98b80b4dd04814a29a37bcba8 INTRO.OUT=5@999999|69ca684f8c787cfe06694cb26f74a95 BASIC.MLC=100@999999|8f8f7b233a9deb154cbcd5314b8e930 ADVTR.INC=5@999999|f95731ab88952dfa4cb326fb99c085f ADVTR.CMB=5@999999|764e8a851411c66106e130374d8abbb