比赛 |
“Asm.Def战记之拉格朗日点”杯 |
评测结果 |
AAAAAAAAAA |
题目名称 |
Asm.Def找燃料 |
最终得分 |
100 |
用户昵称 |
debug |
运行时间 |
0.018 s |
代码语言 |
C++ |
内存使用 |
0.26 MiB |
提交时间 |
2015-11-04 08:52:45 |
显示代码纯文本
#include<cstdio>
using namespace std;
const double d=1e-10;
struct ff
{
double x,y;
}f[111]={};
struct gg
{
double xielv;int shuliang;
}g[111]={};
int top=0;
int n;
int ans=0;
int main()
{
freopen("asm_fuel.in","r",stdin);
freopen("asm_fuel.out","w",stdout);
scanf("%d",&n);//这道题数据量小,裸的暴力就能过,别想太多了,就是模拟而已
for(int i=1;i<=n;i++)
scanf("%lf%lf",&f[i].x,&f[i].y);
for(int i=1;i<=n;i++)//暴力枚举每一个点
{
for(int j=0;j<=n;j++)
g[j].shuliang=0;
int temp=1;//和自身坐标相等的数量,首先自身是一个
top=1;
for(int j=1;j<=n;j++)
if(i!=j)
{
if(f[i].x-d<f[j].x&&f[i].x+d>f[j].x&&f[i].y-d<f[j].y&&f[i].y+d>f[j].y)//坐标相等
temp++;
else if(f[i].x-d<f[j].x&&f[i].x+d>f[j].x)//x相等,斜率不存在
g[1].shuliang++;
else
{
double te=(f[i].y-f[j].y)/(f[i].x-f[j].x);
bool zhaodao=0;
for(int k=2;k<=top;k++)
if(te-d<g[k].xielv&&te+d>g[k].xielv)
{
zhaodao=1;g[k].shuliang++;break;
}
if(!zhaodao)
g[++top].xielv=te,g[top].shuliang=1;
}
}
int te=0;
for(int j=1;j<=top;j++)
if(te<g[j].shuliang)
te=g[j].shuliang;
te+=temp;
if(te>ans)
ans=te;
}
printf("%d\n",ans);
}