题解 | 排座椅 | 模拟题要耐心写

排座椅

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

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n,m,k,l,d;
    cin>>n>>m>>k>>l>>d;
    vector<int> x(d),y(d),p(d),q(d);
    map<int,int> mp,mp2;
    int a=0,b=0;
    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 mp[min(x[i],p[i])]--;
    }

    vector<pair<int,int>> row,col;
    for(auto p:mp)row.push_back({p.second,p.first});
    for(auto p:mp2)col.push_back({p.second,p.first});
    sort(row.begin(),row.end());
    sort(col.begin(),col.end());
    vector<int> ansrow,anscol;
    for(int i=0;i<k;i++)ansrow.push_back(row[i].second);
    for(int i=0;i<l;i++)anscol.push_back(col[i].second);
    sort(ansrow.begin(),ansrow.end());
    sort(anscol.begin(),anscol.end());
    for(auto i:ansrow)cout<<i<<" ";
    cout<<"\n";
    for(auto i:anscol)cout<<i<<" ";
    cout<<"\n";
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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