📄 3283121_ac_375ms_292k.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 + -