POJ 1118

#include<iostream>
#include<set>
#include<stdio.h>
#include<math.h>
#include<algorithm>
#define MAXN 705
using namespace std;

int num;
double p[MAXN][2];
double a[MAXN*MAXN];
set<int> coll;
set<int>::iterator pos;
multiset<int> coll_main;
int main()
{
    //freopen("acm.acm","r",stdin);
    int i;
    int max;
    int j;
    int k;
    int t;
    double value;
    int num;
    double s2;
    while(1)
    {
        scanf("%d",&num);
        if(num == 0)
            break;
        max = 0;
    
        for(i = 0; i < num; ++ i)
        {
            scanf("%lf%lf",&p[i][0],&p[i][1]);
        }
        for(i = 0; i < num; ++ i)
        {
            k = 0;
            for(j = 0; j < num; ++ j)
            {
                if(i != j)
                {
                value = (p[i][0] - p[j][0]) / (p[i][1] - p[j][1]);
                a[k] = value;
                ++ k;
                }
            }
            //////////////////////////////////////
            sort(a,a + k);
            s2 = a[0];
            j = 0;
            
            for(t = 0; t < k; ++ t)
            {
                if(a[t] == s2)
                    ++ j;
                else
                {
                    if(j > max)
                    {        
                        max = j;
                    }
                    s2 = a[t];
                    -- t;
                    j = 0;
                }
            }
            if(j > max)
                max = j;
    //    cout<<max<<endl;
        
        //while(1)
        //{
        //    if(i*(i-1) == 2*max)
        //    {
        //        cout<<i<<endl;
        //        break;
        //    }
        //    ++ i;
        //}
        }
        ++max;
    //    cout<<max<<"======="<<endl;
        //cout<<int((1+(int)(sqrt(long double(1+8*max))+0.5))/2.0)<<endl;
        cout<<max<<endl;
    }
}

关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。 

技术网站地址: vmfor.com

原文地址:https://www.cnblogs.com/gavinsp/p/4563281.html