题解 | 排座椅 | 模拟题要耐心写
排座椅
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")
阿里云成长空间 747人发布