⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scrambled polygon.cpp

📁 poj题目
💻 CPP
字号:
#include<iostream>
#include<iomanip>
using namespace std;
class a
{
public:
	double x,y;
	double slopes;
};
int status[4]={0,0,0,0};
int compare(const void*m,const void *n)
{
	if(((a*)m)->slopes>((a*)n)->slopes)return 1;
	if(((a*)m)->slopes<((a*)n)->slopes)return -1;
	if(((a*)m)->slopes==((a*)n)->slopes)return 0;
}

int main()
{
	int i,j,start;
	a quadrants[4][60];
	double x,y;
	cin>>x>>y;
	while(cin>>x>>y)
	{
		if(x>0&&y>0)
		{
			quadrants[0][status[0]].x=x;
			quadrants[0][status[0]].y=y;
			quadrants[0][status[0]].slopes=y/x;
			status[0]++;
		}
	    if(x<0&&y>0)
		{
			quadrants[1][status[1]].x=x;
			quadrants[1][status[1]].y=y;
			quadrants[1][status[1]].slopes=y/x;
			status[1]++;
		}
		if(x<0&&y<0)
		{
			quadrants[2][status[2]].x=x;
			quadrants[2][status[2]].y=y;
			quadrants[2][status[2]].slopes=y/x;
			status[2]++;
		}
		if(x>0&&y<0)
		{
			quadrants[3][status[3]].x=x;
			quadrants[3][status[3]].y=y;
			quadrants[3][status[3]].slopes=y/x;
			status[3]++;
		}
	}
	for(i=0;i<4;i++)
		if(status[i]!=0)
			qsort(quadrants[i],status[i],sizeof(quadrants[i][0]),compare);
	for(i=0;i<4;i++)
		if(status[i]==0)
			break;
	for(j=i;;j++)
		if(status[j%4]!=0)
			break;
	start=j%4;
    cout<<"("<<0<<","<<0<<")"<<endl;
	for(i=start;;i++)
	{
		if(status[i%4]==0)
			break;
		if(status[i%4]!=0)
		{
			for(j=0;j<status[i%4];j++)
				cout<<"("<<quadrants[i%4][j].x<<","<<quadrants[i%4][j].y<<")"<<endl;
		}
	}

}

⌨️ 快捷键说明

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