显示代码纯文本
#define SLM_CODE
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int n,cnt=0,maxn=-1,x[310],y[310],f[310][310][310];
int main()
{
#ifdef SLM_CODE
freopen("trib.in","r",stdin);
freopen("trib.out","w",stdout);
#endif
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d%d",&x[i],&y[i]);
for(int i=1;i<=n-2;i++)
for(int j=i+1;j<=n-1;j++)
for(int k=j+1;k<=n;k++)
{
int a=abs(x[i]*y[j]+x[j]*y[k]+x[k]*y[i]-y[i]*x[j]-y[j]*x[k]-y[k]*x[i]);
for(int l=1;l<=n;l++)
{
if(l==i||l==j||l==k) continue;
int b=abs(x[i]*y[j]+x[j]*y[l]+x[l]*y[i]-y[i]*x[j]-y[j]*x[l]-y[l]*x[i]);
int c=abs(x[l]*y[j]+x[j]*y[k]+x[k]*y[l]-y[l]*x[j]-y[j]*x[k]-y[k]*x[l]);
int d=abs(x[i]*y[l]+x[l]*y[k]+x[k]*y[i]-y[i]*x[l]-y[l]*x[k]-y[k]*x[i]);
if((b+c+d)<=a) f[i][j][k]++;
}
maxn=max(maxn,f[i][j][k]);
}
for(int i=1;i<=n-2;i++)
for(int j=i+1;j<=n-1;j++)
for(int k=j+1;k<=n;k++)
if(f[i][j][k]==maxn)
cnt++;
printf("%d\n%d",maxn+3,cnt);
return 0;
}