比赛 |
“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);
}