解题思路:
1.本题其实只需要定义一个数组,然后以学校编号为下标,存储对应的总分数即可
2.go语言的话为了在输入不超时用bufio读入一个字符串,然后strings.Fields以空格拆分成字符串数组,之后strconv.Atoi转换成数字,按照对应下标与当前值相加即可。
3.输入完毕其实已经计算完成了,这时只要求出最大值就好,最大值为分数,下标则未学校编号
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
var n int
var school []int
var s, score int
var inputReader *bufio.Reader
inputReader = bufio.NewReader(os.Stdin)
_, _ = fmt.Scanf("%d", &n)
school = make([]int, n+1)
maxScore := 0
maxIndex := 0
for i:=0; i<n; i++ {
str, _ := inputReader.ReadString('\n')
strArray := strings.Fields(str)
s, _ = strconv.Atoi(strArray[0])
score, _ = strconv.Atoi(strArray[1])
school[s] += score
}
maxScore = school[1]
maxIndex = 1
for i:=2; i<=n; i++ {
if school[i] > maxScore {
maxIndex = i
maxScore = school[i]
}
}
fmt.Printf("%d %d\n", maxIndex, maxScore)
}