比赛 “Asm.Def战记之拉格朗日点”杯 评测结果 EEEEEEEEEE
题目名称 Asm.Def找燃料 最终得分 0
用户昵称 momo123 运行时间 1.158 s
代码语言 C++ 内存使用 8.41 MiB
提交时间 2015-11-04 11:48:55
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<map>
#include<queue>
#include<vector>
#include<stack>
using namespace std;
int x[105],y[105],m,n,ans,maxx;
struct xp
{
	int sum;
	int a[105];
}xx[10005];
struct yp
{
	int summ;
	int b[105];
}yy[10005];
bool v[105];
bool pd(int x1,int y1,int x2,int y2,int x3,int y3)
{
	double xx1=x2-x1,xx2=x3-x2;
	double yy1=y2-y1,yy2=y3-y2;
	if(abs(xx1/xx2-yy1/yy2)<1e-9)
	   return true;
	else return false;
}
int main()
{
	freopen("asm_fuel.in","r",stdin);
	freopen("asm_fuel.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++)
	{
	   cin>>x[i]>>y[i];
	   xx[x[i]].sum++;
	   xx[x[i]].a[xx[x[i]].sum]=i;
	   yy[y[i]].summ++;
	   yy[y[i]].b[yy[y[i]].summ]=i;
    }
	for(int i=1;i<=n;i++)
	{
	   for(int p=1;p<=xx[x[i]].sum;p++)
	      for(int p1=1;p1<=yy[y[i]].summ;p1++)
	         if(xx[x[i]].a[p]==yy[y[i]].b[p1])
	         {
	         	ans++;
	         	v[xx[x[i]].a[p]]=1;
			 }
	    for(int j=i+1;j<=n&&v[j]==0;j++)
	   {
	   	for(int q=1;q<=xx[x[j]].sum;q++)
	      for(int q1=1;q1<=yy[y[j]].summ;q1++)
	         if(xx[x[j]].a[q]==yy[y[j]].b[q1])
	         {
	         	ans++;
	         	v[xx[x[j]].a[q]]=1;
			 }
	   	for(int k=1;k<=n&&v[k]==0;k++)
	   		if(pd(x[i],y[i],x[j],y[j],x[k],y[k]))
	   		{
	   		    for(int qq=1;qq<=xx[x[k]].sum;qq++)
	               for(int qq1=1;qq1<=yy[y[k]].summ;qq1++)
	                  if(xx[x[k]].a[qq]==yy[y[k]].b[qq1])
	                  {
	         	        ans++;
	         	        v[xx[x[k]].a[qq]]=1;
			          }
			}
		maxx=max(ans,maxx);
		ans=0;
		memset(v,0,sizeof(v));
		for(int p=1;p<=xx[x[i]].sum;p++)
	      for(int p1=1;p1<=yy[y[i]].summ;p1++)
	         if(xx[x[i]].a[p]==yy[y[i]].b[p1])
	         {
	         	ans++;
	         	v[xx[x[i]].a[p]]=1;
			 }
	   }
	   ans=0;
	   memset(v,0,sizeof(v));
	}
	cout<<maxx;
	return 0;
}