比赛 |
Asm_Def战记之透明计算网络 |
评测结果 |
AAAATTTTTA |
题目名称 |
Asm_Def的模拟赛 |
最终得分 |
50 |
用户昵称 |
WAHT |
运行时间 |
10.060 s |
代码语言 |
C++ |
内存使用 |
0.32 MiB |
提交时间 |
2015-11-01 11:56:30 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iomanip>
using namespace std;
struct my
{
int x,y;
}a[310];
int check(my a,my b,my c)
{
int x;
x=(a.x-b.x)*(a.y-c.y)-(a.y-b.y)*(a.x-c.x);
return x;
}
int read()
{
int f=1,x=0;
char ch=getchar();
while(ch>'9'||ch<'0'){ if(ch=='-') f=-1; ch=getchar();}
while(ch<='9'&&ch>='0'){ x=x*10+ch-'0'; ch=getchar();}
return x*f;
}
int n;
void work1()
{
int ans=0,num=0;
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
for(int h=j+1;h<=n;h++)
{
int amount=0;
for(int k=1;k<=n;k++)
if(k==i||k==j||k==h) continue;
else
{
int v1=check(a[k],a[i],a[h]);
int v2=check(a[k],a[h],a[j]);
int v3=check(a[k],a[j],a[i]);
if(v1>0&&v2>0&&v3>0) amount++;
else if(v1<0&&v2<0&&v3<0) amount++;
}
if(amount>ans) ans=amount,num=1;
else if(amount==ans) num++;
}
printf("%d %d\n",ans+3,num);
}
int main()
{
freopen("trib.in","r",stdin);
freopen("trib.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i].x>>a[i].y;
work1();
return 0;
}