PKU : 2410 - Simple Computers
アルゴリズム
やるだけ.
PCのmod 32とか, accuのmod 256とか忘れないように注意.
プログラム
int main(void){ while(1){ int mem[32],accu=0,pc=0; rep(i,32){ char bit[10]; if(scanf("%s",bit) == EOF) return 0; mem[i] = 0; for(int j=7;j>=0;j--) if(bit[7-j] == '1') mem[i] |= 1<<j; } while(1){ int op = mem[pc] >> 5; int x = mem[pc] & ((1<<5) - 1); if(op == 0){ mem[x] = accu; } else if(op == 1){ accu = mem[x]; } else if(op == 2){ if(accu == 0) pc = x-1; } else if(op == 3){ //nop } else if(op == 4){ accu = (accu + 255) % 256; } else if(op == 5){ accu = (accu + 1) % 256; } else if(op == 6){ pc = x-1; } else if(op == 7){ break; } pc = (pc + 1) % 32; } for(int i=7;i>=0;i--){ printf("%d",(accu&(1<<i)) ? 1 : 0); } printf("\n"); } }