40分蒟蒻………………
查看原帖
40分蒟蒻………………
66097
tjhdyhj楼主2020/8/12 20:58

查不出错了……

#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;
}
2020/8/12 20:58
加载中...