先排出现次数 再按id大小排序打印
行与列是单独看的
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct channel{
int id;
int count;
};
bool comparecount(const channel & a,const channel &b){
return a.count>b.count;
}
bool compareid(const channel & a,const channel &b){
return a.id<b.id;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(),cout.tie();
int n,m,k,l,d;
cin>>n>>m>>k>>l>>d;
vector<channel> column(m+1);
vector<channel> row(n+1);
for(int i=1;i<=m;i++){
column[i].id=i;
column[i].count=0;
}
for(int i=1;i<=n;i++){
row[i].id=i;
row[i].count=0;
}
for(int i=1;i<=d;i++){
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
if(x1==x2){
int k=min(y1,y2);
column[k].count++;
}else{
int k=min(x1,x2);
row[k].count++;
}
}
sort(row.begin()+1,row.begin()+n,comparecount);//插的范围1-n-1
sort(row.begin()+1,row.begin()+k+1,compareid);//打印1-k
for(int i=1;i<=k;i++)cout<<row[i].id<<' ';
cout<<'\n';
sort(column.begin() + 1, column.begin() + m, comparecount);
sort(column.begin() + 1, column.begin() + 1 + l, compareid);
for (int i = 1; i <= l; ++i) {
cout << column[i].id << ' ';
}
return 0;
}

京公网安备 11010502036488号