题解

1 条题解

  • 1
    @ 2022-09-01 20:12:32
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,k;
    string f; 
    char a[51][51];
    int main()
    {
        cin>>n>>m;
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
            {
                cin>>a[i][j];
            }
        }
        cin>>k;
        while(k--)
        {
            cin>>f;
            if(f=="NORTH")
            {
                for(int i=0;i<n;i++)
                {
                    for(int j=0;j<m;j++)
                    {
                        if(a[i][j]=='*')
                        {
                            a[i][j]='.';
                            for(int z=i-1;z>=0;z--)
                            {
                                if(a[z][j]=='X')
                                {
                                    break;
                                }
                                a[z][j]='*';
                            }
                        }
                    }
                }
            }
            if(f=="WEST")
            {
                for(int i=0;i<n;i++)
                {
                    for(int j=0;j<m;j++)
                    {
                        if(a[i][j]=='*')
                        {
                            a[i][j]='.';
                            for(int z=j-1;z>=0;z--)
                            {
                                if(a[i][z]=='X')
                                {
                                    break;
                                }
                                a[i][z]='*';
                            }
                        }
                    }
                }
            }
            if(f=="SOUTH")
            {
                for(int i=n-1;i>=0;i--)
                {
                    for(int j=m-1;j>=0;j--)
                    {
                        if(a[i][j]=='*')
                        {
                            a[i][j]='.';
                            for(int z=i+1;z<n;z++)
                            {
                                if(a[z][j]=='X')
                                {
                                    break;
                                }
                                a[z][j]='*';
                            }
                        }
                    }
                }
            }
            if(f=="EAST")
            {   
            for(int i=0;i<n;i++)
                {
                    for(int j=m-1;j>=0;j--)
                    {
                    if(a[i][j]=='*')
                        {
                            a[i][j]='.';
                            for(int z=j+1;z<m;z++)
                            {
                                if(a[i][z]=='X')
                                {
                                    break;
                                }
                                a[i][z]='*';
                            }
                        }
                    }
                }
            }
        }
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
            {
                cout<<a[i][j];
            }
            cout<<endl;
        }
        return 0;
    }
    
  • 1

信息

ID
1614
难度
7
分类
搜索 点击显示
标签
递交数
1
已通过
1
通过率
100%
上传者