提出 #65687435


ソースコード 拡げる

#include<bits/stdc++.h>
using namespace std;
#define endl '\n';
typedef long long ll;
const int dx[4] = {-1, 0, 1, 0};
const int dy[4] = {0, -1, 0, 1};
const char dir[4] = {'^', '<', 'v', '>'};
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int r,c;
    cin>>r>>c;
    vector<string>mp(r);
    for (int i=0;i<r;i++) cin>>mp[i];
    vector<vector<int>>d(r,vector<int>(c,-1));
    queue<pair<int,int>>q;
    for(int i=0;i<r;i++) {
        for(int j=0;j<c;j++) {
            if (mp[i][j]=='E') {
                d[i][j]=0;
                q.push(make_pair(i,j));
            }
        }
    }
    while(!q.empty()) {// bfs
        auto[x,y]=q.front();
        q.pop();
        for (int i=0;i<4;i++) {
            int ad1=x+dx[i];
            int ad2=y+dy[i];
            if (ad1>=0&&ad1<r&&ad2>=0&&ad2<c&&mp[ad1][ad2]=='.'&&d[ad1][ad2]==-1) {
                d[ad1][ad2]=d[x][y]+1;
                q.push(make_pair(ad1,ad2));
            }
        }
    }
    for(int i=0;i<r;i++) {
        for(int j=0;j<c;j++) {
            if (mp[i][j]=='.') {
                for (int k=0;k<4;k++) {
                    int a1=i+dx[k];
                    int a2=j+dy[k];
                    if (a1>=0&&a1<r&&a2>=0&&a2<c&&mp[a1][a2]!='#'&&d[a1][a2]<d[i][j]) {
                        mp[i][j]=dir[k];
                        break;
                    }
                }
            }
        }
    }
    for (int i=0;i<r;i++) {
        for (int j=0;j<c;j++) {
            cout<<mp[i][j];
        }
        cout<<endl;
    }
    cout<<endl;
}

提出情報

提出日時
問題 D - Escape Route
ユーザ noobslayerk07
言語 C++ 20 (gcc 12.2)
得点 400
コード長 1611 Byte
結果 AC
実行時間 51 ms
メモリ 12428 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 3
AC × 25
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 02_corner_00.txt, 02_corner_01.txt, 02_corner_02.txt, 02_corner_03.txt, 02_corner_04.txt, 02_corner_05.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 1 ms 3660 KiB
00_sample_01.txt AC 1 ms 3532 KiB
00_sample_02.txt AC 1 ms 3604 KiB
01_random_00.txt AC 32 ms 9544 KiB
01_random_01.txt AC 23 ms 7540 KiB
01_random_02.txt AC 45 ms 11192 KiB
01_random_03.txt AC 36 ms 9476 KiB
01_random_04.txt AC 31 ms 8664 KiB
01_random_05.txt AC 31 ms 8868 KiB
01_random_06.txt AC 37 ms 9588 KiB
01_random_07.txt AC 40 ms 10236 KiB
01_random_08.txt AC 21 ms 10016 KiB
01_random_09.txt AC 20 ms 6932 KiB
01_random_10.txt AC 30 ms 8300 KiB
01_random_11.txt AC 49 ms 12428 KiB
01_random_12.txt AC 51 ms 12036 KiB
01_random_13.txt AC 34 ms 9308 KiB
01_random_14.txt AC 32 ms 9496 KiB
01_random_15.txt AC 38 ms 10328 KiB
02_corner_00.txt AC 22 ms 8076 KiB
02_corner_01.txt AC 12 ms 8144 KiB
02_corner_02.txt AC 22 ms 12228 KiB
02_corner_03.txt AC 1 ms 3560 KiB
02_corner_04.txt AC 1 ms 3696 KiB
02_corner_05.txt AC 27 ms 8516 KiB