package main import ( "bufio" "fmt" "os" "strconv" "strings" ) // エントリポイント func main() { in := bufio.NewScanner(os.Stdin) // 1 ゲームの区間の数 in.Scan() input1 := in.Text() // 制限時間と入力する文字列 input2 := make([]string, 0) for in.Scan() { input2 = append(input2, in.Text()) } fmt.Println(typing(input1, input2)) } // タイピングで、タイプできた文字数、タイプできなかった文字数を返す。 func typing(gameCount string, timeAndInput []string) string { _ = gameCount typeCount := 0 missCount := 0 for _, v := range timeAndInput { sp := strings.Split(v, " ") // タイプできる文字数 limit, _ := strconv.Atoi(sp[0]) // 1ミリ秒でタイプできる文字数 = 12文字タイプ / 1000ミリ秒 = 0.012 // 小数を切り捨てるためにintに変換 typeChar := int(float64(0.012) * float64(limit)) inputLen := len(sp[1]) if typeChar >= inputLen { typeCount += inputLen } else { typeCount += typeChar missCount += inputLen - typeChar } } return strconv.Itoa(typeCount) + " " + strconv.Itoa(missCount) }