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
AC × 3
AC × 25
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