Submission #3729368


Source Code Expand

#include<iostream>
#include<algorithm>
using namespace std;
int h,w;
string s[50];
main()
{
	cin>>h>>w;
	int sx,sy;
	bool flagx=0,flagy=0;
	for(int i=0;i<h;i++)
	{
		cin>>s[i];
		for(int j=0;j<w;j++)if(s[i][j]=='@')sx=i,sy=j;
	}
	if(sy==0)
	{
		flagy=1;
		for(int i=0;i<h;i++)reverse(s[i].begin(),s[i].end());
		sy=w-1-sy;
	}
	if(sx%4)
	{
		flagx=1;
		for(int i=0;i<h/2;i++)swap(s[i],s[h-1-i]);
		sx=h-1-sx;
	}
	for(int i=sx-1;i>=0;i--)if(s[i][sy]!='*')s[i][sy]='#';
	int nx=0,ny=sy-1,nd=0;
	while(nx<h)
	{
		if(nd==0)
		{
			while(ny>=0)
			{
				if(s[nx][ny]!='*')s[nx][ny]='#';
				ny--;
			}
			ny++;
			if(nx+1<h&&s[nx+1][ny]!='*')s[nx+1][ny]='#';
			if(nx+2<h&&s[nx+2][ny]!='*')s[nx+2][ny]='#';
			ny++;
			nx+=2;
			nd=1;
		}
		else
		{
			while(ny<=(nx<=sx?sy-2:sy))
			{
				if(s[nx][ny]!='*')s[nx][ny]='#';
				ny++;
			}
			ny--;
			if(nx+1<h&&s[nx+1][ny]!='*')s[nx+1][ny]='#';
			if(nx+2<h&&s[nx+2][ny]!='*')s[nx+2][ny]='#';
			nx+=2;
			nd=0;
		}
	}
	nx-=2;
	while(ny+2<w)
	{
		ny++;
		if(s[nx][ny]!='*')s[nx][ny]='#';
		ny++;
		if(nd==0)
		{
			while(nx>=0)
			{
				if(s[nx][ny]!='*')s[nx][ny]='#';
				nx--;
			}
			nx++;
			nd=1;
		}
		else
		{
			while(nx<h)
			{
				if(s[nx][ny]!='*')s[nx][ny]='#';
				nx++;
			}
			nx--;
			nd=0;
		}
	}
	int d[]={0,1,0,-1,0};
	while(s[nx][ny]!='*')
	{
		s[nx][ny]='.';
		for(int r=0;r<4;r++)
		{
			int tx=nx+d[r],ty=ny+d[r+1];
			if(tx>=0&&ty>=0&&tx<h&&ty<w&&s[tx][ty]!='.')
			{
				nx=tx;
				ny=ty;
				break;
			}
		}
	}
	if(flagx)
	{
		for(int i=0;i<h/2;i++)swap(s[i],s[h-1-i]);
	}
	if(flagy)
	{
		for(int i=0;i<h;i++)reverse(s[i].begin(),s[i].end());
	}
	for(int i=0;i<h;i++)cout<<s[i]<<endl;
}

Submission Info

Submission Time
Task F - RPG Maker
User kotatsugame
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1767 Byte
Status AC
Exec Time 2 ms
Memory 256 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 40
Set Name Test Cases
All 00_sample_00, 00_sample_01, 01_random_00, 01_random_01, 01_random_02, 01_random_03, 01_random_04, 01_random_05, 01_random_06, 01_random_07, 01_random_08, 01_random_09, 01_random_10, 01_random_11, 01_random_12, 01_random_13, 01_random_14, 01_random_15, 01_random_16, 01_random_17, 01_random_18, 01_random_19, 02_large_00, 02_large_01, 02_large_02, 02_large_03, 02_large_04, 02_large_05, 02_large_06, 02_large_07, 02_large_08, 02_large_09, 99_handmade_00, 99_handmade_01, 99_handmade_02, 99_handmade_03, 99_handmade_04, 99_handmade_05, 99_handmade_06, 99_handmade_07
Case Name Status Exec Time Memory
00_sample_00 AC 1 ms 256 KB
00_sample_01 AC 1 ms 256 KB
01_random_00 AC 1 ms 256 KB
01_random_01 AC 1 ms 256 KB
01_random_02 AC 1 ms 256 KB
01_random_03 AC 1 ms 256 KB
01_random_04 AC 1 ms 256 KB
01_random_05 AC 1 ms 256 KB
01_random_06 AC 1 ms 256 KB
01_random_07 AC 1 ms 256 KB
01_random_08 AC 1 ms 256 KB
01_random_09 AC 1 ms 256 KB
01_random_10 AC 1 ms 256 KB
01_random_11 AC 1 ms 256 KB
01_random_12 AC 1 ms 256 KB
01_random_13 AC 1 ms 256 KB
01_random_14 AC 2 ms 256 KB
01_random_15 AC 1 ms 256 KB
01_random_16 AC 1 ms 256 KB
01_random_17 AC 1 ms 256 KB
01_random_18 AC 1 ms 256 KB
01_random_19 AC 1 ms 256 KB
02_large_00 AC 2 ms 256 KB
02_large_01 AC 1 ms 256 KB
02_large_02 AC 1 ms 256 KB
02_large_03 AC 2 ms 256 KB
02_large_04 AC 1 ms 256 KB
02_large_05 AC 2 ms 256 KB
02_large_06 AC 2 ms 256 KB
02_large_07 AC 2 ms 256 KB
02_large_08 AC 2 ms 256 KB
02_large_09 AC 2 ms 256 KB
99_handmade_00 AC 1 ms 256 KB
99_handmade_01 AC 1 ms 256 KB
99_handmade_02 AC 1 ms 256 KB
99_handmade_03 AC 1 ms 256 KB
99_handmade_04 AC 1 ms 256 KB
99_handmade_05 AC 1 ms 256 KB
99_handmade_06 AC 1 ms 256 KB
99_handmade_07 AC 1 ms 256 KB