思路


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e3 + 10;
struct node{
int id;
int cnt;
bool operator < (const node &a)const{
if(cnt == a.cnt) return id < a.id;
return cnt > a.cnt;
}
};
int n, m, k, l, d;
int cntr[maxn], cntc[maxn];
vector<node> vr, vc;
void init(){
for(int i = 1; i < n; i++){
vr.push_back({i, cntr[i]});
}
for(int i = 1; i < m; i++){
vc.push_back({i, cntc[i]});
}
}
int main(){
scanf("%d%d%d%d%d", &n, &m, &k, &l, &d);
int x1, y1, x2, y2;
for(int i = 1; i <= d; i++){
scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
if(x1 == x2){
cntc[min(y1, y2)]++;
}
else{
cntr[min(x1, x2)]++;
}
}
init();
sort(vr.begin(), vr.end()); sort(vc.begin(), vc.end());
vector<int> ans;
for(int i = 0; i < k; i++){
ans.push_back(vr[i].id);
}
sort(ans.begin(), ans.end());
for(auto &itm : ans){
cout << itm << " ";
}
cout << endl;
ans.clear();
for(int i = 0; i < l; i++){
ans.push_back(vc[i].id);
}
sort(ans.begin(), ans.end());
for(auto &itm : ans){
cout << itm << " ";
}
cout << endl;
return 0;
}



京公网安备 11010502036488号