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++;
    }
    
    • 0
      @ 2025-5-31 18:56:01

      签到题,不解释。只要判断越界的边界情况即可。

      #include <stdio.h>
      #include <algorithm>
      int n, k;
      int x, y;
      char s[114];
      void solve()
      {
          scanf("%d%d%s", &x, &y, s);
          for (int i = 0; s[i]; ++i)
              switch (s[i])
              {
              case 'f': y = std::min(y + 1, n); break;
              case 'b': y = std::max(y - 1, 1); break;
              case 'l': x = std::max(x - 1, 1); break;
              case 'r': x = std::min(x + 1, n); break;
              }
          printf("%d %d\n", x, y);
      }
      int main() 
      { 
          scanf("%d%d", &n, &k);
          while (k--) solve();
      }
      
      • 1

      Information

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