记录每条走廊可以隔开多少人后,要排序,并且要按题目要求输出前 `m` 大的数。
代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
int h[2222],z[2222],xx[2222],yy[2222],xxx[2222],yyy[2222],ans[2005],n,m,k,l,d;
int main(){
cin>>m>>n>>k>>l>>d;
for(int i=1;i<=d;i++){
cin>>xx[i]>>yy[i]>>xxx[i]>>yyy[i];
if(xx[i]==xxx[i]) h[min(yy[i],yyy[i])]++;
if(yy[i]==yyy[i]) z[min(xx[i],xxx[i])]++;
}
int maxx,maxxb,tot=0;
for(int i=1;i<=k;i++){
maxx=-1;
for(int j=1;j<=m;j++){
if(z[j]>maxx){
maxx=z[j];
maxxb=j;
}
}
ans[++tot]=maxxb;
z[maxxb]=-INT_MAX;
}
sort(ans+1,ans+k+1);
for(int i=1;i<=k;i++) cout<<ans[i]<<" ";
cout<<endl;
tot=0;
for(int i=1;i<=l;i++){
maxx=-1;
for(int j=1;j<=n;j++){
if(h[j]>maxx){
maxx=h[j];
maxxb=j;
}
}
ans[++tot]=maxxb;
h[maxxb]=-INT_MAX;
}
sort(ans+1,ans+l+1);
for (int i=1;i<=l;i++) cout<<ans[i]<<" ";
return 0;
}
```
by LOvO @ 2024-01-27 17:09:52
@[jzc114514](/user/755270)
by LOvO @ 2024-01-27 17:10:32