题解 | 分数线划定

分数线划定

https://www.nowcoder.com/practice/2395fa7b6c6e452e8d8310a7cfdbe902

package main

import (
	"fmt"
	"math"
	"sort"
)

func main() {
	var n int
	var m float64
	fmt.Scan(&n, &m)
	t := math.Floor(1.5 * m)
	type student struct {
		K int
		S int
	}
	sli := make([]student, 0, n)
	for i := 0; i < n; i++ {
		st := student{}
		fmt.Scan(&st.K, &st.S)
		sli = append(sli, st)
	}
	sort.Slice(sli, func(i, j int) bool {
		if sli[i].S != sli[j].S {
			return sli[i].S > sli[j].S
		}
		return sli[i].K < sli[j].K
	})
	score := sli[int(t)-1].S

	res := make([]student, 0, n)
	for _, v := range sli {
		if v.S >= score {
			res = append(res, v)
		}
	}
	fmt.Printf("%d %d\n", score, len(res))
	for _, v := range res {
		fmt.Printf("%d %d\n", v.K, v.S)
	}
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务