JT230pts求条
查看原帖
JT230pts求条
1044851
99999873654as7829楼主2024/10/27 10:58
#include<bits/stdc++.h>
using namespace std;
int main(){
    int t;
    cin>>t;
    while(t--){
        int n,m,k,x,y,d;
        cin>>n>>m>>k>>x>>y>>d;
        char mp[1123][1123];
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                cin>>mp[i][j];
            }
        }
        set<pair<int,int>> s;
        s.insert(make_pair(x,y));
        while(k--){
            if(d==0){
                if(y+1<=m&&mp[x][y+1]=='.'){
                    y++;
                    s.insert(make_pair(x,y));
                }
                else{
                    d=(d+1)%4;
                }
            }
            else if(d==1){
                if(x+1<=n&&mp[x+1][y]=='.'){
                    x++;
                    s.insert(make_pair(x,y));
                }
                else{
                    d=(d+1)%4;
                }
            }
            else if(d==2){
                if(y-1>=1&&mp[x][y-1]=='.'){
                    y--;
                    s.insert(make_pair(x,y));
                }
                else{
                    d=(d+1)%4;
                }
            }
            else if(d==0){
                if(x-1>=1&&mp[x-1][y]=='.'){
                    x--;
                    s.insert(make_pair(x,y));
                }
                else{
                    d=(d+1)%4;
                }
            }
        }
        cout<<s.size()<<endl;
    }
}
2024/10/27 10:58
加载中...