結果
| 問題 | No.88 次はどっちだ |
| コンテスト | |
| ユーザー |
gogotea
|
| 提出日時 | 2015-04-29 13:04:13 |
| 言語 | Go (1.25.5) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 5,000 ms |
| コード長 | 1,202 bytes |
| 記録 | |
| コンパイル時間 | 11,406 ms |
| コンパイル使用メモリ | 235,972 KB |
| 実行使用メモリ | 7,848 KB |
| 最終ジャッジ日時 | 2026-01-01 19:58:27 |
| 合計ジャッジ時間 | 12,652 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 11 |
ソースコード
package main
import (
"bufio"
"fmt"
"io"
"os"
"strings"
)
const ROWSIZE int = 8
func main() {
sc := NewScanner(os.Stdin)
S, _ := sc.NextLine()
var B [ROWSIZE]string
for i := 0; i < ROWSIZE; i++ {
B[i], _ = sc.NextLine()
}
fmt.Println(solve(S, B))
}
func solve(black string, rows [ROWSIZE]string) string {
players := [...]string{"yukiko", "oda"}
var white string
if black == players[0] {
white = players[1]
} else {
white = players[0]
}
stones := 0
for _, r := range rows {
stones += ROWSIZE - strings.Count(r, ".")
}
if stones%2 == 0 {
return black
} else {
return white
}
}
type Scanner struct {
*bufio.Scanner
}
func NewScanner(r io.Reader) *Scanner {
sc := bufio.NewScanner(r)
// Scan開始前にSplitを設定しないとPanicになるため、ここに移動
sc.Split(bufio.ScanLines)
return &Scanner{
sc,
}
}
func (s *Scanner) NextLine() (string, error) {
// s.Scanner.Split(bufio.ScanLines) // 削除: Scan後に呼ぶとPanicになるため
return s.nextToken()
}
func (s *Scanner) nextToken() (string, error) {
sc := s.Scanner
if sc.Scan() {
return sc.Text(), nil
}
if sc.Err() != nil {
return "", sc.Err()
}
return "", io.EOF
}
gogotea