1. 程式人生 > >CSU 1112 機器人的指令 (湖南省第八屆大學生計算機程式設計競賽 )

CSU 1112 機器人的指令 (湖南省第八屆大學生計算機程式設計競賽 )

1112: 機器人的指令

    Time Limit: 1 Sec    Memory Limit: 128 Mb    Submitted: 2335    Solved: 841  

Description

數軸原點有一個機器人。該機器人將執行一系列指令,你的任務是預測所有指令執行完畢之後它的位置。

·LEFT:往左移動一個單位

·RIGHT: 往右移動一個單位

·SAME AS i: 和第i 條執行相同的動作。輸入保證i 是一個正整數,且不超過之前執行指令數

Input

輸入第一行為資料組數T (T<=100)。每組資料第一行為整數n (1<=n<=100),即指令條數。以下每行一條指令。指令按照輸入順序編號為1~n。

Output

對於每組資料,輸出機器人的最終位置。每處理完一組資料,機器人應復位到數軸原點。

Sample Input

2
3
LEFT
RIGHT
SAME AS 2
5
LEFT
SAME AS 1
SAME AS 2
SAME AS 1
SAME AS 4

Sample Output

1
-5

解題思路:這題也是水題一個,注意處理好輸入就可以了。。。

程式碼如下:

#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
    char s[10],ss[10];
    int t,n,a,b[10001];///b陣列記錄操作
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        int ans=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%s",s);
            if(s[0]=='L') {b[i]=-1; ans--;}
            else if(s[0]=='R') {b[i]=1; ans++;}
            else{
                scanf("%s %d",ss,&a);
                b[i]=b[a];
                ans+=b[a];
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}