Monday, June 6, 2011

377 - Cowculations


#include<stdio.h>
#define M 20
int ToDec(char[]);

int main()
{
    int t,n1,n2,r,i;
    char num1[M],num2[M],res[M],op[3][2];
    //freopen("in.txt","r",stdin);
    scanf("%d\n",&t);

    printf("COWCULATIONS OUTPUT\n");
    while(t--)
    {
        scanf("%s\n%s\n%s\n%s\n%s\n%s\n",num1,num2,op[0],op[1],op[2],res);

        n1 = ToDec(num1);
        n2 = ToDec(num2);
        r = ToDec(res);

        for(i=0;i<3;i++)
        {
            switch(op[i][0])
            {
            case 'A':
                n2 = n1 + n2;
                break;
            case 'L':
                n2 = n2<<2;
                break;
            case 'R':
                n2 = n2>>2;
                break;
            }
        }
        if(n2==r)
            printf("YES\n");
        else
            printf("NO\n");
    }
    printf("END OF OUTPUT\n");
    return 0;
}

int ToDec(char num[])
{
    int i,dec=0,p=1,n;
    for(n=0;num[n];n++);

    for(i=n-1;i>=0;i--)
    {
        switch(num[i])
        {
        case 'U':
            dec += p;
            break;
        case 'C':
            dec += (p<<1);
            break;
        case 'D':
            dec += 3*p;
        }
        p = p<<2;
    }
    return dec;
}

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.