比赛 “Asm.Def战记之拉格朗日点”杯 评测结果 WWWWWWWWWW
题目名称 Asm.Def找燃料 最终得分 0
用户昵称 shooter 运行时间 0.007 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2015-11-04 09:33:06
显示代码纯文本
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
struct Point{
	int x;
	int y;
}point[110];
int gcd(int a,int b){
	return b==0?a:gcd(b,a%b);
}
void m_gcd(int x,int y){
	x/=gcd(x,y);
	y/=gcd(x,y);
}
void init(int x,int y){
	if(x==0&&y!=0)y=1;
	if(y==0&&x!=0)x=1;
	else if(x!=0&&y!=0)m_gcd(x,y);
}
int main(){
	freopen("asm_fuel.in","r",stdin);
	freopen("asm_fuel.out","w",stdout);
	int res[110]={0};
	int n;	
	int a,b;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a>>b;
		init(a,b);
		point[i].x=a;
		point[i].y=b;
	}
	for(int i=1;i<=n-1;i++){
		if(point[i].x==0&&(point[i].y==0)){
			int m=0,n=0;
			for(int j=i+1;i<=n;i++){
				if(point[j].x==0&&point[j].y!=0) m++;
				if(point[j].x!=0&&point[j].y==0) n++;
			}
			res[i]=max(m,n);
		}
		if(point[i].x==0){
			for(int j=i+1;j<=n;j++){
			   if(point[j].x==0) res[i]++;
			}
		}
		if(point[i].y==0){
			for(int j=i+1;j<=n;j++){
				if(point[j].y==0) res[i]++;
			}
		}
		else{
			for(int j=i+1;j<=n;j++){
			if((point[i].x==point[j].x&&point[i].y==point[j].y)||(point[i].x==-point[j].x&&point[i].y==-point[j].y))
			 res[i]++;
			}
		}
	}
	int maxn=-1;
	for(int i=1;i<=n;i++){
	 if(maxn<res[i]) maxn=res[i];
}
    cout<<maxn;
    return 0;
    fclose(stdin);
    fclose(stdout);
}