PersonalCorpus 版 (精华区)

1127620 Big Guava ... 10033 Accepted
0:00.010 64 2002/09/28 23:16:03.512

void main()
{
#ifndef ONLINE_JUDGE
    freopen("c:\\0acm\\uva\\i10033","r",stdin);
    freopen("c:\\0acm\\uva\\o10033","w",stdout);
#endif

    int i,j,k,n,ip,sum,a,b,c;
    char s[10];
    int reg[10],ram[1000];

    scanf("%d\n",&n);
    while (n--) {
        memset(ram,0,sizeof(ram));

        k=0;
        while (1) {
            gets(s);
            if (s[0]==0) break;
            sscanf(s,"%d",&ram[k]);
            k++;
        }
        memset(reg,0,sizeof(reg));
        ip=0; sum=0;
        while (1) {
            sum++;
            if (ram[ip]==100) break;
            a=ram[ip]/100;
            b=(ram[ip]-a*100)/10;
            c=ram[ip]-a*100-b*10;
            ip++;
            if (a==2) {
                reg[b]=c;
                continue;
            }
            if (a==3) {
                reg[b]+=c;
                reg[b]%=1000;
                continue;
            }
            if (a==4) {
                reg[b]*=c;
                reg[b]%=1000;
                continue;
            }
            if (a==5) {
                reg[b]=reg[c];
                continue;
            }
            if (a==6) {
                reg[b]+=reg[c];
                reg[b]%=1000;
                continue;
            }
            if (a==7) {
                reg[b]*=reg[c];
                reg[b]%=1000;
                continue;
            }
            if (a==8) {
                reg[b]=ram[reg[c]];
                continue;
            }
            if (a==9) {
                ram[reg[c]]=reg[b];
            }
            if (a==0) {
                if (reg[c]!=0) ip=reg[b];
            }
        }
        printf("%d\n",sum);
        if (n>0) printf("\n");
    }
}
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.353毫秒