8月10日题目排座椅打卡

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

struct node {
    int index, ct;
    bool operator < (const node & a) const {
        //  if(ct == a.ct) return index < a.index; 好奇这样直接排序为啥不是正确答案
        return ct > a.ct;
    };
};

const int maxn = 2005;
int M, N, K, L, D; // M行N列  K条横向  L条纵向 D对同学
int x[maxn], y[maxn], p[maxn], q[maxn];

int main() {
    cin >> M >> N >> K >> L >> D;
    vector<node> row;
    vector<node> col;
    unordered_map<int, int> mp1, mp2;
    for(int i = 0; i < D; i++) {
        cin >> x[i] >> y[i] >> p[i] >> q[i];
        if(x[i] == p[i]) {
            mp2[min(y[i], q[i])]++;
        } else if(y[i] == q[i]) {
            mp1[min(x[i], p[i])]++;
        }
    }
    for(auto it : mp1) row.push_back({it.first, it.second});
    for(auto it : mp2) col.push_back({it.first, it.second});
    sort(row.begin(), row.end());
    sort(col.begin(), col.end());
    vector<int> ans;
    // for(int i = 0; i < K; i++) cout << row[i].index << " ";
    for(int i = 0; i < K; i++) {
        ans.push_back(row[i].index);
    } 
    sort(ans.begin(), ans.end());
    for(int i : ans) cout << i << " ";
    cout << endl;
    ans.clear();
    // for(int i = 0; i < K; i++) cout << col[i].index << " ";
    for(int i = 0; i < L; i++) {
        ans.push_back(col[i].index);
    }
    sort(ans.begin(), ans.end());
    for(int i : ans) cout << i << " ";
    cout << endl;
    return 0;
}
全部评论

相关推荐

面了这么多场试,总有公司总喜欢压力面一个小时面试+手撕,哪里不会就点哪里,说了不会不会还继续追着问不尊重求职者,稍微有些细节记不清了,就开始怀疑项目真实性以及人格让求职者开摄像头但是自己不开,说话声音还贼小,pardon几次就开始不耐烦的不知道这个算不算,手撕的时候,面试官人跑了。。。最后快结束才来
一纸丿繁华丶:你换位思考一下,自己在职场被领导push麻了,身心俱疲,现在有个机会让你放松一下,体验一把上位者的感觉,还能看着那些高学历人才、未来自己的竞争者,抓耳挠腮、手足无措的样子,没给你当场笑出来就不错了,理解一下面试官吧。
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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