Submission #3407194


Source Code Expand

package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

var sc = bufio.NewScanner(os.Stdin)

// NextLine reads a line text from stdin, and then returns its string.
func NextLine() string {
	sc.Scan()
	return sc.Text()
}

// NextIntsLine reads a line text, that consists of only integers delimited by spaces, from stdin.
// And then returns intergers slice.
func NextIntsLine() []int {
	ints := []int{}
	intsStr := NextLine()
	tmp := strings.Split(intsStr, " ")
	for _, s := range tmp {
		integer, _ := strconv.Atoi(s)
		ints = append(ints, integer)
	}
	return ints
}

var h, w int
var C [][]rune
var delta [4][2]int
var answer bool
var sx, sy int

func main() {
	tmp := NextIntsLine()
	h, w = tmp[0], tmp[1]
	for i := 0; i < h; i++ {
		row := []rune(NextLine())
		C = append(C, row)
	}

	delta = [4][2]int{
		[2]int{1, 0},
		[2]int{0, 1},
		[2]int{-1, 0},
		[2]int{0, -1},
	}

	for i := 0; i < h; i++ {
		for j := 0; j < w; j++ {
			if C[i][j] == 's' {
				sx, sy = j, i
			}
		}
	}

	answer = false
	dfs(sx, sy)
	if answer {
		fmt.Println("Yes")
	} else {
		fmt.Println("No")
	}
}

func dfs(x, y int) {
	C[y][x] = '#'
	for _, d := range delta {
		xx := x + d[0]
		yy := y + d[1]
		if 0 <= xx && xx < w && 0 <= yy && yy < h {
			if C[yy][xx] == 'g' {
				answer = true
			} else if C[yy][xx] == '.' {
				dfs(xx, yy)
			}
		}
	}
}

Submission Info

Submission Time
Task A - 深さ優先探索
User maguroguma
Language Go (1.6)
Score 100
Code Size 1428 Byte
Status AC
Exec Time 114 ms
Memory 108800 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 5
AC × 83
Set Name Test Cases
Sample 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt
All 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 AC 1 ms 640 KB
00_min_02.txt AC 1 ms 640 KB
00_min_03.txt AC 1 ms 640 KB
00_min_04.txt AC 1 ms 640 KB
00_min_05.txt AC 1 ms 640 KB
00_min_06.txt AC 1 ms 640 KB
00_min_07.txt AC 1 ms 640 KB
00_min_08.txt AC 1 ms 640 KB
00_sample_01.txt AC 1 ms 640 KB
00_sample_02.txt AC 1 ms 640 KB
00_sample_03.txt AC 1 ms 640 KB
00_sample_04.txt AC 1 ms 640 KB
00_sample_05.txt AC 1 ms 640 KB
01_rnd_00.txt AC 5 ms 2048 KB
01_rnd_01.txt AC 67 ms 67840 KB
01_rnd_02.txt AC 38 ms 33024 KB
01_rnd_03.txt AC 114 ms 108800 KB
01_rnd_04.txt AC 66 ms 65792 KB
01_rnd_05.txt AC 6 ms 2048 KB
01_rnd_06.txt AC 25 ms 18688 KB
01_rnd_07.txt AC 37 ms 33024 KB
01_rnd_08.txt AC 5 ms 2048 KB
01_rnd_09.txt AC 5 ms 2048 KB
01_rnd_10.txt AC 14 ms 6016 KB
01_rnd_11.txt AC 5 ms 2048 KB
01_rnd_12.txt AC 61 ms 59648 KB
01_rnd_13.txt AC 66 ms 59648 KB
01_rnd_14.txt AC 5 ms 2048 KB
01_rnd_15.txt AC 24 ms 16640 KB
01_rnd_16.txt AC 5 ms 2048 KB
01_rnd_17.txt AC 18 ms 10496 KB
01_rnd_18.txt AC 5 ms 2048 KB
01_rnd_19.txt AC 108 ms 106880 KB
02_rndhard_00.txt AC 5 ms 2048 KB
02_rndhard_01.txt AC 5 ms 2048 KB
02_rndhard_02.txt AC 7 ms 2816 KB
02_rndhard_03.txt AC 7 ms 2816 KB
02_rndhard_04.txt AC 5 ms 2048 KB
02_rndhard_05.txt AC 5 ms 2048 KB
02_rndhard_06.txt AC 5 ms 2048 KB
02_rndhard_07.txt AC 5 ms 2048 KB
02_rndhard_08.txt AC 5 ms 2176 KB
02_rndhard_09.txt AC 5 ms 2176 KB
02_rndhard_10.txt AC 5 ms 2176 KB
02_rndhard_11.txt AC 5 ms 2176 KB
02_rndhard_12.txt AC 5 ms 2176 KB
02_rndhard_13.txt AC 5 ms 2176 KB
02_rndhard_14.txt AC 6 ms 2304 KB
02_rndhard_15.txt AC 6 ms 2432 KB
02_rndhard_16.txt AC 5 ms 2048 KB
02_rndhard_17.txt AC 5 ms 2048 KB
02_rndhard_18.txt AC 5 ms 2048 KB
02_rndhard_19.txt AC 5 ms 2048 KB
02_rndhard_20.txt AC 5 ms 2048 KB
02_rndhard_21.txt AC 5 ms 2048 KB
02_rndhard_22.txt AC 5 ms 2176 KB
02_rndhard_23.txt AC 5 ms 2176 KB
02_rndhard_24.txt AC 5 ms 2048 KB
02_rndhard_25.txt AC 5 ms 2048 KB
02_rndhard_26.txt AC 5 ms 2048 KB
02_rndhard_27.txt AC 5 ms 2048 KB
02_rndhard_28.txt AC 5 ms 2048 KB
02_rndhard_29.txt AC 5 ms 2048 KB
02_rndhard_30.txt AC 5 ms 2048 KB
02_rndhard_31.txt AC 5 ms 2048 KB
02_rndhard_32.txt AC 5 ms 2176 KB
02_rndhard_33.txt AC 5 ms 2176 KB
02_rndhard_34.txt AC 5 ms 2048 KB
02_rndhard_35.txt AC 5 ms 2048 KB
02_rndhard_36.txt AC 5 ms 2048 KB
02_rndhard_37.txt AC 5 ms 2048 KB
02_rndhard_38.txt AC 5 ms 2048 KB
02_rndhard_39.txt AC 5 ms 2048 KB
03_rndhardsmall_00.txt AC 1 ms 640 KB
03_rndhardsmall_01.txt AC 1 ms 640 KB
03_rndhardsmall_02.txt AC 1 ms 640 KB
03_rndhardsmall_03.txt AC 1 ms 640 KB
03_rndhardsmall_04.txt AC 1 ms 640 KB
03_rndhardsmall_05.txt AC 1 ms 640 KB
03_rndhardsmall_06.txt AC 1 ms 640 KB
03_rndhardsmall_07.txt AC 1 ms 640 KB
03_rndhardsmall_08.txt AC 1 ms 640 KB
03_rndhardsmall_09.txt AC 1 ms 640 KB