题解 | #训练营合影#折磨~
分发糖果
https://ac.nowcoder.com/acm/contest/33183/A
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
s := bufio.NewScanner(os.Stdin)
input := []string{}
for s.Scan() {
input = append(input, s.Text())
if len(input) > 3 {
ii, _ := strconv.Atoi(input[3])
if len(input)-4 == ii {
break
}
}
}
likeColor := make(map[int]int)
s3 := strings.Split(input[1], " ")
for _, v := range s3 {
color, _ := strconv.Atoi(v)
likeColor[color] += 1 // 喜欢该颜色的人数
}
pictureColors := make(map[int]int)
s4 := strings.Split(input[2], " ")
for k, v := range s4 {
color, _ := strconv.Atoi(v)
pictureColors[k+1] = color
}
var queryNum int
queryNum, _ = strconv.Atoi(input[3])
for i := 0; i < queryNum; i++ {
var l, r int
s5 := strings.Split(input[4+i], " ")
l, _ = strconv.Atoi(s5[0])
r, _ = strconv.Atoi(s5[1])
queryColors := make(map[int]int)
for i := l; i <= r; i++ {
queryColors[pictureColors[i]] += 1
}
ret := 0
for k, _ := range queryColors {
ret += likeColor[k]
}
fmt.Println(ret)
}
}
用例通过率为 15.38%
运行时间
7ms
占用内存
1128KB
实在不知道什么样的示例会有下面的报错!
程序异常退出,请检查是否存在语法错误或者数组越界非法访问等情况
panic: runtime error: index out of range [1] with length 1
goroutine 1 [running]:
main.main()
/tmp/main.go:26 +0x8b4
求助:话说golang有没有更好的读取终端输入的方法???意思是何时判断终端输入完毕数据了,这里我粗暴的由询问次数确定了一个输入完毕的点。