第一行输入两个整数
,分别表示报名人数与计划录取人数。
接下来
行,每行输入两个整数
,分别为报名号与笔试成绩。报名号保证唯一。
第一行输出两个整数:面试分数线
与进入面试的人数
。
接下来
行,按排序顺序输出每位选手的报名号
与成绩
,每行两个整数,用空格分隔。
6 3 9848 90 6731 88 1422 95 7483 84 8805 95 4162 88
88 5 1422 95 8805 95 9848 90 4162 88 6731 88
计算:,第
名成绩为
,故分数线
;所有
的共有
人。
package main
import (
"fmt"
"sort"
)
type Person struct {
Id int
Score int
}
func main() {
n := 0
m := 0
fmt.Scan(&n, &m)
bishi := []Person{}
scoreMap := map[int]int{}
for {
k, s := 0, 0
n, _ := fmt.Scan(&k, &s)
if n == 0 {
break
}
scoreMap[s]++
one := Person{k, s}
bishi = append(bishi, one)
}
mNum := m*3/2
// fmt.Println(n, m, bishi, mNum)
sort.Slice(bishi, func(i, j int) bool {
if bishi[i].Score > bishi[j].Score {
return true
} else if bishi[i].Score == bishi[j].Score {
return bishi[i].Id < bishi[j].Id
} else {
return false
}
})
minScore := bishi[mNum-1].Score
for i, v := range bishi {
if v.Score < minScore {
mNum = i
break
}
}
fmt.Println(minScore, mNum)
for _, v := range bishi {
if v.Score < minScore {
break
}
fmt.Println(v.Id, v.Score)
}
}