比赛 |
Asm_Def战记之透明计算网络 |
评测结果 |
WWWWTTTTTW |
题目名称 |
Asm_Def的模拟赛 |
最终得分 |
0 |
用户昵称 |
fengchenxue |
运行时间 |
10.030 s |
代码语言 |
C++ |
内存使用 |
3.25 MiB |
提交时间 |
2015-11-01 11:50:38 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<queue>
#include<vector>
#include<cstring>
#include<string>
#include<cstdlib>
using namespace std;
int ans=0,plan=0,n;
struct str{
double x,y,k,b;
}a[310],f[310][310];
bool use [310];
void fun(int x1,int x2,int x3)
{
int an=3;
for(int i=1;i<=n;i++)
{
if(i!=x1&&i!=x2&&i!=x3)
{
if(f[i][x1].k==f[x1][x2].k&&f[i][x1].b==f[x1][x2].b) an++;
if(f[i][x1].k==f[x1][x3].k&&f[i][x1].b==f[x1][x3].b) an++;
if(f[i][x3].k==f[x2][x3].k&&f[i][x3].b==f[x2][x3].b) an++;
}
}
if(an==ans&&an&&ans&&use[x1]!=1&&use[x2]!=1&&use[x3]!=1)
{
use[x1]=1;
use[x2]=1;
use[x3]=1;
// printf("%d %d %d\n",x1,x2,x3);
plan++;
}
if(an>ans)
{
ans=an;
plan=1;
}
return;
}
int main()
{
freopen("trib.in","r",stdin);
freopen("trib.out","w",stdout);
cin>>n;
double ki,bi;
for(int i=1;i<=n;i++)
{
scanf("%lf%lf",&a[i].x,&a[i].y);
}
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
ki=(a[i].y-a[j].y)/(a[i].x-a[j].x);
// printf("%d %d %lf %lf\n",i,j,a[i].y-a[j].y,a[i].x-a[j].y);
if(a[i].x==a[j].x) ki=0;
f[j][i].k=ki;
f[i][j].k=ki;
bi=a[i].y-ki*a[i].x;
f[i][j].b=bi;
f[j][i].b=bi;
// printf("%d %d %lf %lf\n",i,j,ki,bi);
}
}
for(int j1=1;j1<=n;j1++)
{
for(int j2=j1+1;j2<=n;j2++)
{
for(int j3=j2+1;j3<=n;j3++)
{
// printf("%d %d %d\n",j1,j2,j3);
fun(j1,j2,j3);
}
}
}
// cout<<(-2)*(-2)<<endl;
cout<<ans<<endl<<plan;
return 0;
}