题解 | 小苯送礼物

小苯送礼物

https://www.nowcoder.com/practice/466e02d2177845589ab5fa5decc2857f

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;

struct fan {
    int id;
    int like;
    int bookmark;
    int score;
};

bool cmp( const fan& a, const fan& b) {
    if (a.score != b.score)
        return a.score > b.score; //按score 降序排序
    else if (a.bookmark != b.bookmark)
        return a.bookmark > b.bookmark;//score一样,按抽藏值降序排序
    else
        return a.id < b.id; //score和收藏都一样,按id升序排序
}


int main() {
    int n, k;
    int x, y;
    cin >> n >> k;
    vector<fan> fans(n);
    vector<int> target_num;
    for (int i = 0; i < n; ++i) {
        cin >> fans[i].like >> fans[i].bookmark;
        fans[i].id = i + 1;
        fans[i].score = fans[i].bookmark * 2 + fans[i].like;
    }
    sort(fans.begin(), fans.end(), cmp);
    for (int i = 0; i < k; ++i) {
        target_num.emplace_back(fans[i].id);
    }
    sort(target_num.begin(), target_num.end());
    for (int i : target_num) {
        cout << i << " ";
    }

    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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