2 solutions

  • 0
    @ 2025-11-19 10:20:46

    读取整个命令(string),对其中字符迭代处理

    #include <iostream>
    using namespace std;
    
    void forward(int n,int& x,int& y);
    void backward(int n,int& x,int& y);
    void left(int n,int& x,int& y);
    void right(int n,int& x,int& y);
    
    int main(){
        int n,t;
        cin>>n>>t;
        int x,y;
        string cmd;
        while(t--){
            cin>>x>>y;
            cin>>cmd;
            for(char ch: cmd){
                switch(ch){
                    case 'f': forward(n,x,y); break;
                    case 'b': backward(n,x,y); break;
                    case 'l': left(n,x,y); break;
                    case 'r': right(n,x,y); break;
                }
                // if(ch == 'f') forward(n,x,y);
                // else if(ch == 'b') backward(n,x,y);
                // else if(ch == 'l') left(n,x,y);
                // else right(n,x,y);
            }
            cout<<x<<' '<<y<<endl;
        }
    }
    
    void forward(int n,int& x,int& y){
        if(y+1<=n) y++;
    }
    void backward(int n,int& x,int& y){
        if(y-1>=1) y--;
    }
    void left(int n,int& x,int& y){
        if(x-1>=1) x--;
    }
    void right(int n,int& x,int& y){
        if(x+1<=n) x++;
    }
    

    Information

    ID
    40
    Time
    1000ms
    Memory
    512MiB
    Difficulty
    1
    Tags
    # Submissions
    190
    Accepted
    98
    Uploaded By