题解 | 排座椅

排座椅

https://www.nowcoder.com/practice/b8dc67c35bdb47e489da682e908379f7

#include <iostream>
#include<set>
#include<vector>
#include<unordered_map>
#include<algorithm>
using namespace std;
struct compare {
    bool operator()(const pair<int, int>& a, const pair<int, int>& b) {
        return a.second > b.second;
    }
};


int main() {
    int n, m, k, l, d;
    cin >> n >> m >> k >> l >> d;
    unordered_map<int, int>row;
    unordered_map<int, int>column;
    while (d--) {
        int x, y, p, q;
        cin >> x >> y >> p >> q;
        if (x == p)
            column[min(y, q)]++;
        else if (y == q)
            row[min(x, p)]++;
    }
    multiset<pair<int, int>, compare>r_sort;
    multiset<pair<int, int>, compare>c_sort;
    vector<int>r_a;
    vector<int>r_b;
    for (const auto& x : row)
        r_sort.insert(x);
    for (const auto& x : column)
        c_sort.insert(x);
    int i = 0;
    for (const auto& x : r_sort) {
        if (i < k) {
            r_a.push_back(x.first);
            i++;
        } else
            break;
    }
    i=0;
    for (const auto& x : c_sort) {
        if (i < l) {
            r_b.push_back(x.first);
            i++;
        } else
            break;
    }
    sort(r_a.begin(), r_a.end());
    sort(r_b.begin(), r_b.end());
    for (int x : r_a)
        cout << x << " ";
    cout << endl;
    for (int x : r_b)
        cout << x << " ";
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

我只是一个小白菜:我还用不惯m4,也是山猪吃不了细糠了
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
08-19 18:59
已编辑
绍兴文理学院 Java
一只末影酱:一、1w+qps嘛感觉数据有点太夸张了 二、还有就是99.95%这些,本身大部分学生做的小项目基本是100%,因为量太小了,网络抖动问题也基本模拟不出来,感觉这些不太好写 三、你这些项目,都是一个月就做完了,更抽象了,也就是大概意味着,没有技术调研,没有上线测试,
点赞 评论 收藏
分享
09-17 17:19
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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