查不出错了……
#include <bits/stdc++.h>
using namespace std;
int main ()
{
long int M,N,K,L,D,i,j,HD[2050][2050],ZD[2050][2050],lin1=8000,lin2,lin3,lin4,Hn=0,Zn=0,Kn[2050],Ln[2050],Kl[2050],Ll[2050],Kname[2050],Lname[2050];//M:行 N:列 K:横向通道 L:纵向通道 D:几对交头接耳的同学
cin>>M>>N>>K>>L>>D;
for (i=1;i<=M;i++)
{
for (j=1;j<=N;j++)
{
lin1++;
HD[i][j]=lin1;
ZD[i][j]=lin1;
}
Kl[i]=0;
Kname[i]=i;
}
for (i=1;i<=N;i++)
{
Ll[i]=0;
Lname[i]=i;
}
for (i=1;i<=D;i++)
{
cin>>lin1>>lin2>>lin3>>lin4;
if ((lin2-lin4==1) || (lin2-lin4==-1))
{
Hn++;
HD[lin1][lin2]=Hn;
HD[lin3][lin4]=Hn;
}
else
{
Zn++;
ZD[lin1][lin2]=Zn;
ZD[lin3][lin4]=Zn;
}
}
for (i=1;i<=M-1;i++)
{
for (j=1;j<=N;j++)
{
if ((ZD[i][j]==ZD[i+1][j]))
{
Kl[i]++;
}
}
}
for (i=1;i<=N-1;i++)
{
for (j=1;j<=M;j++)
{
if ((HD[j][i]==HD[j][i+1] ))
{
Ll[i]++;
}
}
}
for (i=M-1;i>=1;i--)
{
for (j=1;j<=i;j++)
{
if (Kl[j]<Kl[j+1])
{
lin1=Kl[j];
lin2=Kname[j];
Kl[j]=Kl[j+1];
Kname[j]=Kname[j+1];
Kl[j+1]=lin1;
Kname[j+1]=lin2;
}
}
}
for (i=N-1;i>=1;i--)
{
for (j=1;j<=i;j++)
{
if (Ll[j]<Ll[j+1])
{
lin1=Ll[j];
lin2=Lname[j];
Ll[j]=Ll[j+1];
Lname[j]=Lname[j+1];
Ll[j+1]=lin1;
Lname[j+1]=lin2;
}
}
}
sort(Kname+1,Kname+1+K);
sort(Lname+1,Lname+1+L);
for (i=1;i<=K;i++)
{
cout<<Kname[i]<<" ";
}
cout<<endl;
for (i=1;i<=L;i++)
{
cout<<Lname[i]<<" ";
}
return 0;
}