题解 | 小苯送礼物
小苯送礼物
https://www.nowcoder.com/practice/466e02d2177845589ab5fa5decc2857f
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
let n = 0;//n名粉丝
let k = 0;//送k个粉丝礼物
let num = 0//粉丝编号
let list = []
while (line = await readline()) {
let tokens = line.split(' ');
let a = parseInt(tokens[0]);
let b = parseInt(tokens[1]);
if (n === 0) {
n = a;
k = b;
} else {
num++;//
list.push({
id: num, //粉丝编号
// zan: a, //赞,后续未用到,可删除
sc: b, //收藏数
zc: parseInt(a + 2 * b) //支持力度
})
}
}
list.sort((o1, o2) => {
if (o1.zc !== o2.zc) {
return o2.zc - o1.zc;//支持力度降序
} else {
if (o1.sc !== o2.sc) {
return o2.sc - o1.sc;// 支持力度一样,选择收藏更多的-》 收藏降序
} else {
return o1.id - o2.id// 收藏一样,选编号更小的-》编号升序
}
}
})
// 获取前k个粉丝的编号,并进行排序
let nos = [] //粉丝编号
for (let i = 0; i < k; i++) {
nos.push(list[i].id)
}
// 排序:不能直接使用sort()默认排序
nos.sort((a,b)=>{return a-b})
// 打印:数组转字符串,以空格分隔
console.log(nos.join(' '));
}()
#你感受到金三银四了嘛?#