题解 | 排座椅

排座椅

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

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

vector<int>x1;
vector<int>x2;
vector<int>yy1;
vector<int>yy2;
vector<pair<int, int>> row_info;
vector<pair<int, int>> col_info;

void solve(){
    int n,m,k,l,d;
    cin>>n>>m>>k>>l>>d;
    row_info.resize(n+1);
    col_info.resize(m+1);
    for(int i=0;i<=n;i++){
        row_info[i] = {0, i};
    }
    for(int j=0;j<=m;j++){
        col_info[j] = {0, j};
    }
    x1.resize(d);
    yy1.resize(d);
    x2.resize(d);
    yy2.resize(d);

    for(int i=0;i<d;i++){
        cin>>x1[i]>>yy1[i]>>x2[i]>>yy2[i];
    }

    for(int i=0;i<d;i++){
        if(x1[i]==x2[i]){
            int min_col = min(yy1[i], yy2[i]);
            col_info[min_col].first++;
        }
        else if(yy1[i]==yy2[i]){
            int min_row = min(x1[i], x2[i]);
            row_info[min_row].first++;
        }
    }

    sort(row_info.begin(), row_info.end(), [](const pair<int,int>& a, const pair<int,int>& b){
        if(a.first != b.first) return a.first > b.first;
        return a.second < b.second;
    });
    sort(col_info.begin(), col_info.end(), [](const pair<int,int>& a, const pair<int,int>& b){
        if(a.first != b.first) return a.first > b.first;
        return a.second < b.second;
    });
    vector<int>row;
    vector<int>column;
    for(int i=0;i<k;i++){
        row.push_back(row_info[i].second);
    }
    for(int j=0;j<l;j++){
        column.push_back(col_info[j].second);
    }
    sort(row.begin(),row.end());
    sort(column.begin(),column.end());
    for(int i=0;i<k;i++){
        cout<<row[i]<<" ";
    }
    cout<<endl;
    for(int j=0;j<l;j++){
        cout<<column[j]<<" ";
    }
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    solve();
    return 0;
}

菜的没边了,只能想出来这种方法

全部评论

相关推荐

白火同学:1、简历可以浓缩成一页,简历简历先要“简”方便HR快速过滤出有效信息,再要“历”用有效信息突出个人的含金量。 2、教育背景少了入学时间~毕业时间,HR判断不出你是否为应届生。 3、如果你的平台账号效果还不错,可以把账号超链接或者用户名贴到对应位置,一是方便HR知道你是具体做了什么内容的运营,看到账号一目了然,二是口说无凭,账号为证,这更有说服力。
面试被问期望薪资时该如何...
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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