Submission #420577


Source Code Expand

Copy
#include<iostream>
#include<cstdio>
#include<vector>
#include<queue>
#include<map>
#include<string>
#include<algorithm>
#include<functional>
using namespace std;
#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)
#define REP(i,n) for (int i=0;i<(n);i++)
#define RREP(i,n) for (int i=(n)-1;i>=0;i--)
#define INF 1<<30
#define MP make_pair
#define mp make_pair
#define pb push_back
#define PB push_back
#define DEBUG(x) cout<<#x<<": "<<x<<endl
#define ll long long
#define ull unsigned long long

int H,W;
struct pos{
	int x,y;
	pos(int X,int Y){x=X;y=Y;}
	pos(){}
};
int isover(int x,int y){
	return(x<0 || y< 0 || x>=W || y>=H);
}
int main(){
	cin >> H >> W;
	vector<string> field(H);
	bool flag[H][W];
	REP(i,H)REP(j,W)flag[i][j]=false;
	int sx,sy;int gx,gy;
	REP(i,H){
		cin>>field[i];
		REP(j,W){
			if(field[i][j]=='s') {sx=j;sy=i;}
			if(field[i][j]=='g'){gx=j;gy=i;}
		}
	}
// 	cout<<sx<<sy<<endl;
// 	cout<<gx<<gy<<endl;
	queue<pos> Q;
	Q.push(pos(sx,sy));
	while(!Q.empty()){
		pos current = Q.front();
// 		cout<<current.x<<" " <<current.y<<endl;
		Q.pop();
		if(current.x==gx && current.y==gy){break;}
		int dx[]={1,0,-1,0};
		int dy[]={0,1,0,-1};
		REP(i,4){
			if(isover(current.x+dx[i],current.y+dy[i])) continue;
			pos next=pos(current.x+dx[i],current.y+dy[i]);
			if(flag[next.y][next.x]) continue;
			if(field[next.y][next.x]=='#') continue;
			flag[next.y][next.x]=true;
			Q.push(next);

// 			cout<<"L"<<endl;
		}
	}
	if(flag[gy][gx]){cout<<"Yes"<<endl;}
	else cout<<"No"<<endl;

	return 0;
}

Submission Info

Submission Time
Task A - 深さ優先探索
User ish_774
Language C++ (GCC 4.9.2)
Score 100
Code Size 1627 Byte
Status
Exec Time 59 ms
Memory 1324 KB

Judge Result

Set Name Score / Max Score Test Cases
Sample 0 / 0 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt
All 100 / 100 00_min_01.txt, 00_min_02.txt, 00_min_03.txt, 00_min_04.txt, 00_min_05.txt, 00_min_06.txt, 00_min_07.txt, 00_min_08.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 02_rndhard_00.txt, 02_rndhard_01.txt, 02_rndhard_02.txt, 02_rndhard_03.txt, 02_rndhard_04.txt, 02_rndhard_05.txt, 02_rndhard_06.txt, 02_rndhard_07.txt, 02_rndhard_08.txt, 02_rndhard_09.txt, 02_rndhard_10.txt, 02_rndhard_11.txt, 02_rndhard_12.txt, 02_rndhard_13.txt, 02_rndhard_14.txt, 02_rndhard_15.txt, 02_rndhard_16.txt, 02_rndhard_17.txt, 02_rndhard_18.txt, 02_rndhard_19.txt, 02_rndhard_20.txt, 02_rndhard_21.txt, 02_rndhard_22.txt, 02_rndhard_23.txt, 02_rndhard_24.txt, 02_rndhard_25.txt, 02_rndhard_26.txt, 02_rndhard_27.txt, 02_rndhard_28.txt, 02_rndhard_29.txt, 02_rndhard_30.txt, 02_rndhard_31.txt, 02_rndhard_32.txt, 02_rndhard_33.txt, 02_rndhard_34.txt, 02_rndhard_35.txt, 02_rndhard_36.txt, 02_rndhard_37.txt, 02_rndhard_38.txt, 02_rndhard_39.txt, 03_rndhardsmall_00.txt, 03_rndhardsmall_01.txt, 03_rndhardsmall_02.txt, 03_rndhardsmall_03.txt, 03_rndhardsmall_04.txt, 03_rndhardsmall_05.txt, 03_rndhardsmall_06.txt, 03_rndhardsmall_07.txt, 03_rndhardsmall_08.txt, 03_rndhardsmall_09.txt
Case Name Status Exec Time Memory
00_min_01.txt 27 ms 800 KB
00_min_02.txt 29 ms 744 KB
00_min_03.txt 27 ms 920 KB
00_min_04.txt 26 ms 920 KB
00_min_05.txt 25 ms 920 KB
00_min_06.txt 27 ms 796 KB
00_min_07.txt 26 ms 928 KB
00_min_08.txt 26 ms 916 KB
00_sample_01.txt 27 ms 916 KB
00_sample_02.txt 27 ms 924 KB
00_sample_03.txt 26 ms 792 KB
00_sample_04.txt 26 ms 840 KB
00_sample_05.txt 27 ms 812 KB
01_rnd_00.txt 44 ms 1308 KB
01_rnd_01.txt 51 ms 1324 KB
01_rnd_02.txt 49 ms 1316 KB
01_rnd_03.txt 47 ms 1316 KB
01_rnd_04.txt 48 ms 1320 KB
01_rnd_05.txt 43 ms 1316 KB
01_rnd_06.txt 52 ms 1304 KB
01_rnd_07.txt 52 ms 1312 KB
01_rnd_08.txt 42 ms 1316 KB
01_rnd_09.txt 49 ms 1316 KB
01_rnd_10.txt 54 ms 1320 KB
01_rnd_11.txt 46 ms 1312 KB
01_rnd_12.txt 57 ms 1316 KB
01_rnd_13.txt 45 ms 1316 KB
01_rnd_14.txt 43 ms 1312 KB
01_rnd_15.txt 50 ms 1312 KB
01_rnd_16.txt 43 ms 1316 KB
01_rnd_17.txt 59 ms 1320 KB
01_rnd_18.txt 43 ms 1316 KB
01_rnd_19.txt 46 ms 1316 KB
02_rndhard_00.txt 43 ms 1320 KB
02_rndhard_01.txt 42 ms 1312 KB
02_rndhard_02.txt 42 ms 1308 KB
02_rndhard_03.txt 44 ms 1308 KB
02_rndhard_04.txt 42 ms 1312 KB
02_rndhard_05.txt 42 ms 1312 KB
02_rndhard_06.txt 42 ms 1312 KB
02_rndhard_07.txt 42 ms 1320 KB
02_rndhard_08.txt 43 ms 1316 KB
02_rndhard_09.txt 41 ms 1320 KB
02_rndhard_10.txt 43 ms 1320 KB
02_rndhard_11.txt 43 ms 1320 KB
02_rndhard_12.txt 44 ms 1316 KB
02_rndhard_13.txt 41 ms 1312 KB
02_rndhard_14.txt 43 ms 1324 KB
02_rndhard_15.txt 42 ms 1312 KB
02_rndhard_16.txt 45 ms 1324 KB
02_rndhard_17.txt 42 ms 1312 KB
02_rndhard_18.txt 42 ms 1312 KB
02_rndhard_19.txt 42 ms 1320 KB
02_rndhard_20.txt 41 ms 1312 KB
02_rndhard_21.txt 42 ms 1316 KB
02_rndhard_22.txt 43 ms 1320 KB
02_rndhard_23.txt 42 ms 1316 KB
02_rndhard_24.txt 41 ms 1320 KB
02_rndhard_25.txt 42 ms 1316 KB
02_rndhard_26.txt 44 ms 1312 KB
02_rndhard_27.txt 44 ms 1320 KB
02_rndhard_28.txt 48 ms 1308 KB
02_rndhard_29.txt 45 ms 1248 KB
02_rndhard_30.txt 45 ms 1316 KB
02_rndhard_31.txt 44 ms 1312 KB
02_rndhard_32.txt 44 ms 1308 KB
02_rndhard_33.txt 45 ms 1320 KB
02_rndhard_34.txt 44 ms 1312 KB
02_rndhard_35.txt 47 ms 1312 KB
02_rndhard_36.txt 42 ms 1320 KB
02_rndhard_37.txt 44 ms 1308 KB
02_rndhard_38.txt 43 ms 1252 KB
02_rndhard_39.txt 44 ms 1312 KB
03_rndhardsmall_00.txt 27 ms 924 KB
03_rndhardsmall_01.txt 30 ms 764 KB
03_rndhardsmall_02.txt 25 ms 804 KB
03_rndhardsmall_03.txt 26 ms 928 KB
03_rndhardsmall_04.txt 26 ms 808 KB
03_rndhardsmall_05.txt 26 ms 800 KB
03_rndhardsmall_06.txt 26 ms 800 KB
03_rndhardsmall_07.txt 26 ms 804 KB
03_rndhardsmall_08.txt 26 ms 804 KB
03_rndhardsmall_09.txt 26 ms 804 KB