比赛 Asm_Def战记之透明计算网络 评测结果 AAAATTTTTA
题目名称 Asm_Def的模拟赛 最终得分 50
用户昵称 momo123 运行时间 10.375 s
代码语言 C++ 内存使用 0.33 MiB
提交时间 2015-11-01 11:49:32
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<queue>
#include<algorithm>
#include<cmath>
#include<vector>
#include<cstring>
using namespace std;
double x[301],y[301],mx,my;
int n,ans=3,maxx=3,pp=1,t=1,anss;
int xx1[300],xx2[300],xx3[3000];
double area(double x0,double y0,double x1,double y1,double x2,double y2)
{
	return x0*y1+x2*y0+x1*y2-x2*y1-x0*y2-x1*y0;
}
int main()
{
	freopen("trib.in","r",stdin);
	freopen("trib.out","w",stdout);
	cin>>n;
	if(n<3) 
	{
		cout<<"0"<<endl<<"0";
		return 0;
	}
	if(n==3)
	{
		cout<<"3"<<endl<<"1";
		return 0;
	}
	for(int i=1;i<=n;i++)
	{
		double tt,ttt;
		cin>>tt>>ttt;
		x[i]=tt+1000;
		y[i]=ttt+1000;
    }
	for(int i=1;i<=n;i++)
	    for(int j=1;j<=n;j++)
	       for(int k=1;k<=n;k++)
	           if(i!=j&&j!=k&&k!=i)
	           {
	       	    double a1=area(x[i],y[i],x[j],y[j],x[k],y[k]);
	       	    for(int p=1;p<=n;p++)
	       	      if(p!=i&&p!=j&&p!=k)
	       	      {
	       	  	        double a2,a3,a4;
	       	  	        a2=abs(area(x[i],y[i],x[j],y[j],x[p],y[p]));
	       	  	        a3=abs(area(x[p],y[p],x[j],y[j],x[k],y[k]));
	       	            a4=abs(area(x[i],y[i],x[p],y[p],x[k],y[k]));
	       	            double sum=a2+a3+a4;
	       	            double c=fabs(sum-a1);
	       	            if(c<=1e-9) ans++;
			      } 
			     if(ans>maxx)
				 {
				   maxx=ans;
				   xx1[t]=i,xx2[t]=j,xx3[t]=k;
				   pp=1;
			     }
			     else 
				 if(ans==maxx)
				 {
				   for(int ii=1;ii<=t;ii++)
				     if((i!=xx1[ii]&&i!=xx2[ii]&&i!=xx3[ii])||(j!=xx1[ii]&&j!=xx2[ii]&&j!=xx3[ii])||(k!=xx1[ii]&&k!=xx2[ii]&&k!=xx3[ii]))
				     	anss++;
					if(anss==t) 
					{
					  pp++;
					  t++;
					  xx1[t]=i,xx2[t]=j,xx3[t]=k;
				    }
					anss=0;
				 }
				 ans=3; 
		       }
	cout<<maxx<<endl<<pp<<endl;
}