比赛 |
“Asm.Def战记之拉格朗日点”杯 |
评测结果 |
AAAAAAAAAA |
题目名称 |
Asm.Def找燃料 |
最终得分 |
100 |
用户昵称 |
WAHT |
运行时间 |
0.035 s |
代码语言 |
C++ |
内存使用 |
0.32 MiB |
提交时间 |
2015-11-04 09:05:57 |
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;
int read()
{
int x=0,f=1;
char ch=getchar();
while(ch>'9'||ch<'0'){ if(ch=='-') f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){ x=x*10+ch-'0';ch=getchar();}
return x*f;
}
struct my
{
double x,y;
}a[110];
int n;
int main()
{
freopen("asm_fuel.in","r",stdin);
freopen("asm_fuel.out","w",stdout);
n=read();
for(int i=1;i<=n;i++)
{
int x=read(),y=read();
a[i].x=x,a[i].y=y;
}
int ans=0;
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
{
int num=0,f=0;
double K=0,b=0;
if(a[i].x!=a[j].x) f=1,K=(a[i].y-a[j].y)/(a[i].x-a[j].x);
b=a[i].y-K*a[i].x;
for(int k=1;k<=n;k++)
if(i==k||j==k) continue;
else
{
if(a[i].x==a[k].x&&a[i].y==a[k].y) num++;
else if(!f&&a[i].x==a[k].x) num++;
else if(f&&a[i].x==a[k].x) continue;
else
{
double k2=(a[i].y-a[k].y)/(a[i].x-a[k].x);
double b2=a[i].y-k2*a[i].x;
if((k2==K)&&(b2==b)) num++;
}
}
ans=max(ans,num);
}
cout<<ans+2<<endl;
return 0;
}