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 ;
}
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 ;
}