#include FILE *infile; int mm[32]; int readcase() { int l = 0; char m[64]; while ((l<32) && (fscanf(infile, "%s", m)!=EOF)) { mm[l] = 0; for (int k=0; k<8; k++) mm[l] = (mm[l] << 1) + ((m[k]=='1') ? 1 : 0); l++; } return (l==32); } void solvecase() { int acc=0; int pc=0; int ci; int run=1; while (run) { ci = mm[pc]; pc = (pc + 1) & 0x1F; switch (ci >> 5) { case 0: mm[ci & 31] = acc; break; case 1: acc = mm[ci & 31]; break; case 2: if (!acc) pc = ci & 31; break; case 3: break; case 4: acc = (acc-1) & 0xFF; break; case 5: acc = (acc+1) & 0xFF; break; case 6: pc = ci & 31; break; case 7: run=0; break; } } for (int k=0; k<8; k++) { printf("%d", (acc >> 7) & 1); acc <<= 1; } printf("\n"); } int main() { if (!(infile = fopen("computer.in", "r"))) { printf("infile?\n"); return 1; } while (readcase()) solvecase(); fclose(infile); return 0; }