黑白点.cpp

来自「设平面上分布着n个白点和n个黑点」· C++ 代码 · 共 58 行

CPP
58
字号
#include "iostream.h"
int fun(float *bx,float *by,float *wx,float *wy,int n)
{int i,j,h,l,k,d1[100],d2[100];
   	for(i=1;i<=n;i++)
		d1[i]=i;
	for(i=1;i<=n;i++)
	{k=d1[i];
		for(j=i+1;j<=n;j++)
		{if(by[k]==by[d1[j]])
			{if(bx[k]>bx[d1[j]])
				{k=d1[j]; l=j;}
			}
			else if(by[k]>by[d1[j]])
			{k=d1[j];l=j;
			}
		}
			if(d1[i]!=k)
			{h=d1[i];d1[i]=d1[l];d1[l]=h;}
	}
  	for(i=1;i<=n;i++)
		d2[i]=i;
	for(i=1;i<=n;i++)
	{k=d2[i];
		for(j=i+1;j<=n;j++)
		{if(wy[k]==wy[d1[j]])
			{if(wx[k]>wx[d1[j]])
				{k=d1[j];
				   l=j;}
			}
			if(wy[k]>wy[d2[j]])
			{k=d2[j];
				l=j;}
		}
			if(d2[i]!=k)
			{h=d2[i];
				d2[i]=d2[l];
				d2[l]=h;}
}
	h=0;
	for(i=1;i<=n;i++)
	{k=d1[i];
		l=d2[i];
		if(bx[k]>=wx[l]&&by[k]>=wy[l])
			h++;}
	return h;}
void main()
{int n;
	cin>>n;
	float  bx[100],by[100],wx[100],wy[100];
		for(int i=1;i<=n;i++)
	{cin>>bx[i];
		cin>>by[i];}
	for(i=1;i<=n;i++)
	{cin>>wx[i];
		cin>>wy[i];}
	cout<<fun(bx,by,wx,wy,n)<<endl;
	}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?