Saturday 22 November 2014

UVA 11956 Brainfuck Solution ( URAL 1552 )

///     Raihan Ruhin
///     CSE, Jahangirnagar University.
///     Dhaka-Bangladesh.
///     id: raihanruhin (topcoder / codeforces / codechef / hackerrank), 3235 (lightoj)
///     mail: raihanruhin@ (yahoo / gmail / facebook)
///     blog: ruhinraihan.blogspot.com

#include<bits/stdc++.h>
using namespace std;

#define SET(a) memset(a,-1,sizeof(a))
#define CLR(a) memset(a,0,sizeof(a))
#define PI acos(-1.0)

#define MOD 1000000007
#define MX 100010

int main()
{
    //ios_base::sync_with_stdio(0);cin.tie(0);
    int kk=1, tc, n, mem[105];
    string s;
    cin>>tc;
    while(tc--)
    {
        cin>>s;
        int sl=s.size();
        CLR(mem);
        int p=0;
        for(int i=0;i<sl;i++)
        {
            if(s[i]=='>') p=(p+1)%100;

            else if(s[i]=='<') p=(p-1+100)%100;

            else if(s[i]=='+') mem[p]=(mem[p]+1)%256;

            else if(s[i]=='-') mem[p]=(mem[p]-1+256)%256;

        }
        cout<<"Case "<<kk++<<":";
        for(int i=0;i<100;i++)
            //cout<<" "<<hex<<setfill('0')<<setw(2)<<uppercase<<mem[i];
            printf(" %02X", mem[i]);
        cout<<'\n';
    }

    return 0;
}

No comments:

Post a Comment