#include <stdio.h>#include <string.h>unsigned char memory[32];unsigned char pc;unsigned char accu;char line[9];unsigned char ParseFromLine(char* s) { unsigned char result = 0; int base = 128; while(*s) { result += (*s-'0')*base; base = (base>>1); s++; } return result; }void ParseToLine(unsigned char number, char* buf) { int i=7; memset(buf, '0', 8); buf[8]=0; while(number) { buf[i--] = (number % 2 ) + '0'; number = (number>>1); } }unsigned char Run() { unsigned char instruction, pre, addr; pc=0; accu=0; while(1) { instruction = memory[pc++]; if(pc>=32) pc=0; pre = (instruction >> 5); addr = (instruction & 0x1f); switch(pre) { case 0: memory[addr] = accu; break; case 1: accu = memory[addr]; break; case 2: if(accu == 0) pc=addr; break; case 3: break; case 4: accu--; break; case 5: accu++; break; case 6: pc=addr; break; case 7: return accu; break; } } return accu; }int main() { int i=0; unsigned char result; while(scanf("%s",line)!=EOF) { memory[0]=ParseFromLine(line); for(i=1;i<32;i++) { scanf("%s",line); memory[i]=ParseFromLine(line); } result = Run(); ParseToLine(result, line); printf("%sn", line); } return 0; }