算法可能我没太看懂
不过我的代码很好理解
```cpp
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
int nu,lct;
}s1[2005],s2[2005];
int len,len2;
bool cmp(node x,node y)
{
return x.nu>y.nu;
}
int main()
{
int m,n,k,l,d,i;
scanf("%d%d%d%d%d",&m,&n,&k,&l,&d);
for(i=1;i<=d;i++)
{
int x,y,xx,yy;
scanf("%d%d%d%d",&y,&x,&yy,&xx);
if(y==yy)
s1[min(x,xx)].nu++,s1[min(x,xx)].lct=min(x,xx);
if(x==xx)
s2[min(y,yy)].nu++,s2[min(y,yy)].lct=min(y,yy);
}
sort(s1+1,s1+1+n,cmp);
sort(s2+1,s2+1+m,cmp);
int a[2005],q=0;
for(i=1;i<=k;i++)
a[++q]=s2[i].lct;
sort(a+1,a+1+q);
for(i=1;i<=k;i++)
{
if(i==1) printf("%d",a[1]);
else printf(" %d",a[i]);
}
q=0;
for(i=1;i<=l;i++)
a[++q]=s1[i].lct;
sort(a+1,a+1+q);
for(i=1;i<=l;i++)
{
if(i==1) printf("\n%d",a[1]);
else printf(" %d",a[i]);
}
return 0;
}
```
by resftlmuttmotw @ 2018-11-01 23:31:34