제출 #719587

#제출 시각아이디문제언어결과실행 시간메모리
719587jamezzzNautilus (BOI19_nautilus)C++17
66 / 100
1085 ms3412 KiB
#include <bits/stdc++.h>
using namespace std;

#define sf scanf
#define pf printf
#define INF 1023456789
#define maxn 505

int r,c,m,grid[maxn][maxn],pos[maxn][maxn],pos2[maxn][maxn];

int main(){
	sf("%d%d%d",&r,&c,&m);
	for(int i=1;i<=r;++i){
		for(int j=1;j<=c;++j){
			char ch;sf(" %c",&ch);
			if(ch=='.'){
				grid[i][j]=1;
				pos[i][j]=1;
			}
		}
	}
	for(int i=0;i<m;++i){
		char ch;sf(" %c",&ch);
		vector<pair<int,int>> dir;
		if(ch=='W'||ch=='?')dir.push_back({0,1});
		if(ch=='E'||ch=='?')dir.push_back({0,-1});
		if(ch=='N'||ch=='?')dir.push_back({1,0});
		if(ch=='S'||ch=='?')dir.push_back({-1,0});
		for(int i=1;i<=r;++i){
			for(int j=1;j<=c;++j){
				pos2[i][j]=0;
				for(auto[dx,dy]:dir){
					if(grid[i][j]&&pos[i+dx][j+dy]){
						pos2[i][j]=1;
					}
				}
			}
		}
		for(int i=1;i<=r;++i){
			for(int j=1;j<=c;++j)pos[i][j]=pos2[i][j];
		}
		/*
		printf("\n");
		for(int i=1;i<=r;++i){
			for(int j=1;j<=c;++j)printf("%d",pos[i][j]);
			printf("\n");
		}
		printf("\n");
		*/
	}
	int ans=0;
	for(int i=1;i<=r;++i){
		for(int j=1;j<=c;++j)ans+=pos[i][j];
	}
	printf("%d\n",ans);
}

/*
5 9 7
...##....
..#.##..#
..#....##
.##...#..
....#....
WS?EE??
*/

컴파일 시 표준 에러 (stderr) 메시지

nautilus.cpp: In function 'int main()':
nautilus.cpp:12:4: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |  sf("%d%d%d",&r,&c,&m);
      |    ^
nautilus.cpp:15:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |    char ch;sf(" %c",&ch);
      |              ^
nautilus.cpp:23:13: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   23 |   char ch;sf(" %c",&ch);
      |             ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...