Source Code

Problem:
1118 User: eth1
Memory: 272K Time: 297MS
Language: C
++ Result: Accepted
Source Code
#include
<iostream>
#include
<algorithm>
#include
<cmath>
using namespace std;
struct node
{
int a,b;
}f[
705];
double ans[705];

int main()
{
int t;
while(cin>>t && t)
{
for(int i=0;i<t;i++)
{
cin
>>f[i].a>>f[i].b;
}
int maxx=0;
for(int i=0;i<t;i++) // 枚举
{
int n=0;
for(int j=0;j<t;j++)
{
if(j!=i)
ans[n
++]=(f[j].b-f[i].b)/((f[j].a-f[i].a)*1.0);
}
sort(ans,ans
+n);
double tem=ans[0];
int ans_one=1;
for(int j=1;j<n;j++)
{
if(tem==ans[j]) // 貌似这么比较double不准 , (tem-ans[j]) < 1e-9 ...
{
ans_one
++;
}
else
{
maxx
= max(maxx,ans_one);
ans_one
=1;
tem
=ans[j];
}
}
maxx
= max(maxx,ans_one);
}

cout
<< maxx+1 <<endl;
}
return 0;
}
 posted on 2011-05-20 19:33  eth0  阅读(125)  评论(0编辑  收藏  举报