#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;
}
菜的没边了,只能想出来这种方法

京公网安备 11010502036488号