結果
| 問題 |
No.402 最も海から遠い場所
|
| コンテスト | |
| ユーザー |
yoza
|
| 提出日時 | 2016-07-23 00:39:42 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 138 ms / 3,000 ms |
| コード長 | 766 bytes |
| コンパイル時間 | 13,691 ms |
| コンパイル使用メモリ | 224,188 KB |
| 実行使用メモリ | 84,500 KB |
| 最終ジャッジ日時 | 2024-11-06 12:52:57 |
| 合計ジャッジ時間 | 14,911 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 |
ソースコード
package main
import (
"bufio"
"fmt"
"math"
"os"
)
func main() {
var h, w int
fmt.Scanf("%d %d", &h, &w)
dp := [][]int{}
for i := 0; i <= h; i++ {
dp = append(dp, make([]int, w+1))
}
max := 0
sc := bufio.NewScanner(os.Stdin)
for y := 1; y <= h; y++ {
sc.Scan()
row := sc.Text()
for x := 1; x <= w; x++ {
if row[x-1:x] == "." {
continue
}
dp[y][x] = minInt(dp[y-1][x-1], dp[y-1][x], dp[y][x-1]) + 1
max = maxInt(max, dp[y][x])
}
}
fmt.Println((max + 1) / 2)
}
func maxInt(list ...int) int {
max := int(math.MinInt64)
for _, i := range list {
if i > max {
max = i
}
}
return max
}
func minInt(list ...int) int {
min := int(math.MaxInt64)
for _, i := range list {
if i < min {
min = i
}
}
return min
}
yoza