提出 #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 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |