Submission #65651958
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define db double
#define i128 __int128
#define ui unsigned int
#define ull unsigned long long
mt19937 rng_32(chrono::steady_clock::now().time_since_epoch().count());
mt19937_64 rng_64(chrono::steady_clock::now().time_since_epoch().count());
const ull X=rng_64();
ull splitmix64(ull x) {
x^=x<<13;
x^=x>>7;
x^=x<<17;
return x;
}
ull rng(ull x){return splitmix64(x+X);}
const int N=1e3;
ll n,m;
char c[N+10][N+10],ans[N+10][N+10];
ll f[N+10][N+10];
queue<pair<int,int> > q;
int ax[]={-1,0,0,1};
int ay[]={0,-1,1,0};
char op[]={'v','>','<','^'};//may error.
int main(){
ios::sync_with_stdio(0),cin.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>c[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(c[i][j]=='E') f[i][j]=0,q.push(make_pair(i,j));
else f[i][j]=(ll)1e18;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
ans[i][j]=c[i][j];
while(!q.empty()){
int x=q.front().first,y=q.front().second;
q.pop();
for(int i=0;i<4;i++){
int nx=x+ax[i],ny=y+ay[i];
if(nx<1||nx>n||ny<1||ny>m) continue;
if(f[nx][ny]!=(ll)1e18) continue;
if(c[nx][ny]=='#') continue;
f[nx][ny]=f[x][y]+1;
ans[nx][ny]=op[i];
q.push(make_pair(nx,ny));
}
}
for(int i=1;i<=n;i++,cout<<'\n')
for(int j=1;j<=m;j++)
cout<<ans[i][j];
return 0;
}
/*
g++ test.cpp -o test -std=c++14 -O2 -Wall -Wshadow ulimit -s 5120000
./test
*/
Submission Info
| Submission Time | |
|---|---|
| Task | D - Escape Route |
| User | BigPigeon_fan |
| Language | C++ 20 (gcc 12.2) |
| Score | 400 |
| Code Size | 1508 Byte |
| Status | AC |
| Exec Time | 42 ms |
| Memory | 17348 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| 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 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3644 KiB |
| 00_sample_01.txt | AC | 1 ms | 3440 KiB |
| 00_sample_02.txt | AC | 1 ms | 3552 KiB |
| 01_random_00.txt | AC | 25 ms | 12340 KiB |
| 01_random_01.txt | AC | 24 ms | 14672 KiB |
| 01_random_02.txt | AC | 39 ms | 15640 KiB |
| 01_random_03.txt | AC | 40 ms | 14264 KiB |
| 01_random_04.txt | AC | 25 ms | 12568 KiB |
| 01_random_05.txt | AC | 30 ms | 15112 KiB |
| 01_random_06.txt | AC | 27 ms | 12672 KiB |
| 01_random_07.txt | AC | 42 ms | 14976 KiB |
| 01_random_08.txt | AC | 23 ms | 15864 KiB |
| 01_random_09.txt | AC | 27 ms | 13320 KiB |
| 01_random_10.txt | AC | 32 ms | 12460 KiB |
| 01_random_11.txt | AC | 42 ms | 17328 KiB |
| 01_random_12.txt | AC | 39 ms | 17348 KiB |
| 01_random_13.txt | AC | 38 ms | 14092 KiB |
| 01_random_14.txt | AC | 30 ms | 13000 KiB |
| 01_random_15.txt | AC | 40 ms | 15192 KiB |
| 02_corner_00.txt | AC | 27 ms | 13352 KiB |
| 02_corner_01.txt | AC | 19 ms | 13428 KiB |
| 02_corner_02.txt | AC | 37 ms | 17056 KiB |
| 02_corner_03.txt | AC | 1 ms | 3512 KiB |
| 02_corner_04.txt | AC | 3 ms | 9480 KiB |
| 02_corner_05.txt | AC | 38 ms | 13364 KiB |