Monday, 5 June 2017

UVA 12503 Solution:

আইডিয়াঃ আমারা প্রথমে একটা ক্যারেক্টার অ্যারে নিবো। রোবটটি বামদিকে গেলে মান হবে -১ এবং ডানদিকে গেলে মান হবে +১। সুতরাং Left অর্থাৎ ক্যারেক্টার অ্যারের ০ ইনডেক্সে যদি  L হয় তাহলে মান -১ করে বাড়াবো এবং Right   অর্থাৎ ক্যারেক্টার অ্যারের ০ ইনডেক্সে যদি  R হয় তাহলে মান +১ করে বাড়াবো. same as ith এর জন্য পূর্ববর্তী ইন্সট্রাকশন অনুযায়ী +১ অথবা -১ যোগ করবো।


কোডঃ



#include<bits/stdc++.h>
using namespace std;
int main()
{
    int test,step,result,e,ar[101];
    char c[20];
    cin>>test;
    while(test--)
    {
        cin>>step;
        result=0;
        for(int i=1;i<=step;++i)
        {
            scanf("%s",c);
            if(c[0]=='L')
            {
                result-=1;
                ar[i]=-1;
            }
            else if(c[0]=='R')
            {
                result+=1;
                ar[i]=1;
            }
            else
            {
                scanf("%s%d",c,&e);
                result+=ar[e];
                ar[i]=ar[e];
            }
        }
        cout<<result<<endl;
    }
    return 0;
}

No comments:

Post a Comment