結果
問題 | No.24 数当てゲーム |
ユーザー | derui |
提出日時 | 2016-02-11 19:57:33 |
言語 | Go (1.22.1) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 1,410 bytes |
コンパイル時間 | 11,468 ms |
コンパイル使用メモリ | 221,584 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-10 21:58:16 |
合計ジャッジ時間 | 11,631 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
6,816 KB |
testcase_01 | AC | 1 ms
6,820 KB |
testcase_02 | AC | 1 ms
6,820 KB |
testcase_03 | AC | 2 ms
6,820 KB |
testcase_04 | AC | 1 ms
6,816 KB |
testcase_05 | AC | 1 ms
6,816 KB |
testcase_06 | AC | 1 ms
6,820 KB |
testcase_07 | AC | 1 ms
6,816 KB |
testcase_08 | AC | 1 ms
6,820 KB |
testcase_09 | AC | 1 ms
6,820 KB |
ソースコード
package main import "fmt" import "bufio" import "os" import "math" type turn struct { Numbers []int Contains bool } func loadTurns(numOfTurn int, sc *bufio.Scanner) []turn { turns := make([]turn, 0) for i := 0;i < numOfTurn; i++ { var r1, r2, r3, r4 int var yesno string sc.Scan() cur := turn{} text := sc.Text() fmt.Sscanf(text, "%d %d %d %d %s", &r1, &r2, &r3, &r4, &yesno) if yesno == "YES" { cur.Contains = true } else { cur.Contains = false } cur.Numbers = []int{r1, r2, r3,r4} turns = append(turns, cur) } return turns } func main() { var turn int fmt.Scan(&turn) sc := bufio.NewScanner(os.Stdin) sc.Split(bufio.ScanLines) turns := loadTurns(turn, sc) fmt.Println(solve(turn, turns)) } func solve(turn int, turns []turn) int { results := make([]int, 10); for i := range results { results[i] = 0 } // それぞれのturnをすべてチェックして、含まれていれば+、含まれていなければマイナス // として扱う。 // 複数回Containsであるとされたデータは、必ず最も大きい値となる。 for _, v := range turns { for _, num := range v.Numbers { if v.Contains { results[num] += 1 } else { results[num] -= 1 } } } target := math.MinInt64 resultNumber := -1 for ind, v := range results { if v > target { target = v resultNumber = ind } } return resultNumber }