Submission #202335

#TimeUsernameProblemLanguageResultExecution timeMemory
202335someone_aaArt Exhibition (JOI18_art)C++17
0 / 100
13 ms504 KiB
#include <bits/stdc++.h>
#define ll long long 
#define pb push_back
#define mp make_pair
using namespace std;
const int maxn = 1010;
char maze[maxn][maxn];
bool visited[2*maxn];
int dist[2*maxn], n, m;
vector<int>g[2*maxn];

int main() {
	cin>>n>>m;
	for(int i=1;i<=n;i++) {
		for(int j=1;j<=m;j++) {
			cin>>maze[i][j];

			if(maze[i][j] == '#') {
				g[i].pb(j+n);
				g[j+n].pb(i);
			}
		}
	}

	memset(dist,-1,sizeof(dist));
	queue<int>q;
	q.push(1);
	dist[1] = 0;

	while(!q.empty()) {
		int curr = q.front();
		q.pop();

		for(int i:g[curr]) {
			if(!visited[i]) {
				dist[i] = dist[curr] + 1;
				visited[i] = true;
				q.push(i);
			}
		}
	}
	cout<<dist[n]<<"\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...