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

📄 3283121_ac_375ms_292k.cpp

📁 Lining Uphttp://acm.pku.edu.cn/JudgeOnline/problem?id=1118
💻 CPP
字号:
/*
#include <iostream>
using namespace std;
int n;
int mm=0;
struct point
{
	int x;
	int y;
	double k[700];
	int index;
};
point arr[701];
bool is(point a,point b,point c)
{
	if(1.0*(a.y-b.y)/(a.x-b.x)==1.0*(b.y-c.y)/(b.x-c.x))
		return 1;
	return 0;
}
void findd(point& a,point& b,int now)
{
	int count=2;
	double tem=(a.y-b.y)*1.0/(a.x-b.x);
	if(now>=n)
		return ;
	for(int cc=0;cc<a.index;++cc)
		if(tem==a.k[cc])
			return ;
	for(int i=0;i<b.index;++i)
		if(tem==b.k[i])
			return;
	
	a.k[a.index++]=tem;
	b.k[b.index++]=tem;
	for(int j=now;j<n;++j)
	{
		if(is(a,b,arr[j]))
		{
			arr[j].k[arr[j].index++]=tem;
			
			count++;
		}
	}
	if(count>mm)
		mm=count;
}

int main()
{
	
	while(cin>>n&&n!=0){
	for(int i=0;i<n;++i)
	{cin>>arr[i].x>>arr[i].y;arr[i].index=0;}

	for(int j=0;j<n-mm;++j)
	{
		for(int k=j+1;k<n-1;++k)
		{
			findd(arr[j],arr[k],k+1);
		}
	}
	cout<<mm<<endl;
	for(int wo=0;wo<n;++wo)
		arr[wo].index=0;
	}
	return 0;
}




#include <iostream>
using namespace std;

int main()
{
	for(int i=1;i<=700;++i)
	{cout<<i<<" "<<i+1<<' ';if(i%10==0)cout<<endl;}
}*/


#include<iostream>
#include<algorithm> 
#include<cmath>
const double Pi=100000000;
using namespace std;
struct
{
	double x,y;
}d[701];
int main()
{
	int n,i,j,Max;
	double p[701];
	while(cin >> n,n!=0){
		for(i=0;i<n;i++)	cin >> d[i].x >> d[i].y;
		Max=1;
		for(i=0;i<n;i++)
		{
			int k=0;
			for(j=0;j<n;j++)
			{
				if(j==i)	continue;
				if(d[j].x!=d[i].x)	p[k++]=(d[j].y-d[i].y)/(d[j].x-d[i].x);
				else	p[k++]=Pi;
			}	
			sort(p,p+k);
			int t=1;
			for(j=1;j<k;j++){
				if(p[j]==p[j-1])	t++;
				else{
					if(Max<t)	Max=t;
					t=1;
				}if(Max<t) Max=t;

			}
		}
		cout << Max+1 << endl;
	}
}

⌨️ 快捷键说明

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