轰炸

来源:互联网 发布:python升级到2.7 编辑:程序博客网 时间:2024/04/19 09:59

QAQ
枚举任意两个点计算斜率,对于一个点与其他点的斜率进行排序,看有多少个相同斜率的即为答案

#include <iostream>#include <cstdio>#include <algorithm>using namespace std;double f[701][701];double x[701],y[701];int ans;int main(){    int n;     scanf("%d",&n);    for(int i=1;i<=n;i++)     scanf("%lf%lf",x+i,y+i);    for(int i=1;i<=n;i++)     for(int j=1;j<=n;j++)      if(i!=j)       f[i][j]=(y[i]-y[j])/(x[i]-x[j]);    for(int i=1;i<=n;i++)     {        sort(f[i]+1,f[i]+n+1);        int sum1=0;        int sum2=0;        for(int j=3;j<=n;j++)         if(f[i][j]==f[i][j-1])          sum1++,sum2=max(sum2,sum1);         else sum1=0;        sum1=max(sum1,sum2);        ans=max(ans,sum1);      }        printf("%d",ans+2);}