dalao们,谁能帮我看看为什么后面测试点re了
查看原帖
dalao们,谁能帮我看看为什么后面测试点re了
102780
佩奇dalao楼主2021/10/8 19:53
#include<bits/stdc++.h>
using namespace std;
struct poi
{
	int x1;
	int x2;
	int y1;
	int y2;
}a[4003];
struct num
{
	int x;
	int y;
	int sumx;
	int sumy;
}b[4003];
bool cmpx(num a,num b)
{
	return a.sumx>=b.sumx;
}
bool cmpy(num a,num b)
{
	return a.sumy>=b.sumy;
}
int main()
{
	int m,n,k,l,d,ansx[4003],ansy[4003];
	for(int i=1;i<=4003;i++)
	{
		b[i].x=0;
		b[i].y=0;
		b[i].sumx=0;
		b[i].sumy=0;
	}
	scanf("%d%d%d%d%d",&m,&n,&k,&l,&d);
	for(int i=1;i<=d;i++)
	{
		scanf("%d%d%d%d",&a[i].x1,&a[i].y1,&a[i].x2,&a[i].y2);
	}
	for(int i=1;i<=d;i++)
	{
		if(a[i].y1==a[i].y2)
		{
			int c=min(a[i].x1,a[i].x2);
			b[c].x=c;
			b[c].sumx++;
		}
		else
		{
			int h=min(a[i].y1,a[i].y2);
			b[h].y=h;
			b[h].sumy++;
		}
	}
	sort(b+1,b+d+2,cmpx);
	int ii=1;
	int kk=k;
	while(k--)
	{
		ansx[ii]=b[ii].x;
		ii++;
	}
	sort(ansx+1,ansx+kk+1);
	for(int i=1;i<=kk;i++)
	{
		printf("%d ",ansx[i]);
	}
	printf("\n");
	sort(b+1,b+d+2,cmpy);
	int j=1;
	int ll=l;
	while(l--)
	{
		ansy[j]=b[j].y;
		j++;
	}
	sort(ansy+1,ansy+ll+1);
	for(int i=1;i<=ll;i++)
	{
		printf("%d ",ansy[i]);
	}
	return 0;
}
2021/10/8 19:53
加载中...