Submission #2979274


Source Code Expand

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<ctime>
#include<iomanip>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<fstream>
#include<sstream>
using namespace std;
int ex,ey,n=0,ans=0,cx[2000],cy[2000],sx[2000],sy[2000],rua=0,h,w;
int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
char m[50][50];
int v[50][50];
void dfs(int x,int y)
{
	if(ans==n)
	{
		rua=1;
		return;
	}
	for(int i=0;i<3;i++)
	{
		int ax=x+dx[i],ay=y+dy[i];
		if(!v[ax][ay])
		{
			if(m[ax][ay]=='!'||m[ax][ay]=='*')
			{
				v[ax][ay]=1;
			    if(m[ax][ay]=='!') m[ax][ay]='#';
			    if(m[ax][ay]=='*') ans++;
			    dfs(ax,ay);
			    if(!rua)
			    {
			    	v[ax][ay]=1;
			        
			        ans--;
				}
				else break;
			}
		}
	}
}
int main()
{
	scanf("%d%d",&h,&w);
	for(int i=1;i<=h;i++)
	{
		getchar();
		for(int j=1;j<=w;j++)
	    {
		    scanf("%c",&m[i][j]);
		    if(m[i][j]=='@') ex=i,ey=j,v[i][j]=1;
		    if(m[i][j]=='*')
		    {
		    	n++;
		    	cx[n]=i;
		    	cy[n]=j;
			}
	    }
	}
	for(int i=1;i<=n;i++)
	{
		if(!sx[cx[n]])
		{
			sx[cx[n]]=1;
			for(int j=1;j<=w;j++)
		    {
			    if(m[cx[n]][j]!='@'&&m[cx[n]][j]!='*') m[cx[n]][j]='!';
		    }
		}
		if(!sy[cy[n]])
		{
			sy[cy[n]]=1;
			for(int j=1;j<=h;j++)
			{
				if(m[j][cy[n]]!='@'&&m[j][cy[n]]!='*') m[j][cy[n]]='!';
			}
		}
	}
	
	for(int j=1;j<=w;j++)
	if(m[ex][j]!='@'&&m[ex][j]!='*') m[ex][j]='!';
	for(int j=1;j<=h;j++)
	if(m[j][ey]!='@'&&m[j][ey]!='*') m[j][ey]='!';
	
	dfs(ex,ey);
	
	for(int i=1;i<=h;i++)
	{
		for(int j=1;j<=w;j++)
		{
			
			printf("%c",m[i][j]);
		}
		printf("\n");
	}
    return 0;
}

Submission Info

Submission Time
Task F - RPG Maker
User luogu_bot1
Language C++ (GCC 5.4.1)
Score 0
Code Size 1725 Byte
Status WA
Exec Time 1 ms
Memory 256 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:49:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d",&h,&w);
                     ^
./Main.cpp:55:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
       scanf("%c",&m[i][j]);
                           ^

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
WA × 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 WA 1 ms 128 KB
00_sample_01 WA 1 ms 128 KB
01_random_00 WA 1 ms 128 KB
01_random_01 WA 1 ms 128 KB
01_random_02 WA 1 ms 128 KB
01_random_03 WA 1 ms 256 KB
01_random_04 WA 1 ms 256 KB
01_random_05 WA 1 ms 128 KB
01_random_06 WA 1 ms 128 KB
01_random_07 WA 1 ms 128 KB
01_random_08 WA 1 ms 128 KB
01_random_09 WA 1 ms 128 KB
01_random_10 WA 1 ms 128 KB
01_random_11 WA 1 ms 128 KB
01_random_12 WA 1 ms 128 KB
01_random_13 WA 1 ms 128 KB
01_random_14 WA 1 ms 256 KB
01_random_15 WA 1 ms 128 KB
01_random_16 WA 1 ms 128 KB
01_random_17 WA 1 ms 128 KB
01_random_18 WA 1 ms 128 KB
01_random_19 WA 1 ms 128 KB
02_large_00 WA 1 ms 128 KB
02_large_01 WA 1 ms 256 KB
02_large_02 WA 1 ms 256 KB
02_large_03 WA 1 ms 256 KB
02_large_04 WA 1 ms 256 KB
02_large_05 WA 1 ms 256 KB
02_large_06 WA 1 ms 256 KB
02_large_07 WA 1 ms 128 KB
02_large_08 WA 1 ms 256 KB
02_large_09 WA 1 ms 256 KB
99_handmade_00 WA 1 ms 128 KB
99_handmade_01 WA 1 ms 128 KB
99_handmade_02 WA 1 ms 128 KB
99_handmade_03 WA 1 ms 128 KB
99_handmade_04 WA 1 ms 128 KB
99_handmade_05 WA 1 ms 128 KB
99_handmade_06 WA 1 ms 128 KB
99_handmade_07 WA 1 ms 128 KB