题解 | 排座椅
排座椅
https://www.nowcoder.com/practice/b8dc67c35bdb47e489da682e908379f7
#include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n,m,k,l,d; pair<int,int> x,y; cin>>n>>m>>k>>l>>d; vector<pair<int,int>> row(n-1); for(int i=0;i<n-1;i++){ row[i].first=i+1; row[i].second=0; } vector<pair<int,int>> col(m-1); for(int i=0;i<m-1;i++){ col[i].first=i+1; col[i].second=0; } for(int i=0;i<d;++i){ cin>>x.first>>x.second>>y.first>>y.second; if(x.first==y.first) col[min(x.second,y.second)-1].second++; if(x.second==y.second) row[min(x.first,y.first)-1].second++; } sort(row.begin(),row.end(),[](auto const&a,auto const&b){return a.second>b.second;}); sort(col.begin(),col.end(),[](auto const&a,auto const&b){return a.second>b.second;}); sort(row.begin(),row.begin()+k,[](auto const&a,auto const&b){return a.first<b.first;}); sort(col.begin(),col.begin()+l,[](auto const&a,auto const&b){return a.first<b.first;}); for(int i=0;i<k;i++) cout<<row[i].first<<' '; cout<<'\n'; for(int i=0;i<l;i++) cout<<col[i].first<<' '; } // 64 位输出请用 printf("%lld")