#define _CRT_SECURE_NO_DEPRECATE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define mpair make_pair #define all(v) v.begin(),v.end() using namespace std; typedef long long ll; typedef long double ld; const ld epsylon = 1e-9; ll get(int ax, int ay, int bx, int by) { return ((ll)ax- (ll)bx) * ((ll)ax- (ll)bx) + ((ll)ay- (ll)by) * ((ll)ay- (ll)by); } long long evkl(long long a,long long b) { long long r; if(b>a) swap(b,a); if(a==0) { if(b!=0) return b; else return 1; } if(b==0) return a; while(a%b) { r=a%b; a=b; b=r; } return b; } long long comb(int n,int k) { long long res=1,tmp,a,b; if(k==0) return 1; for(int i=0;i> n; map, int> met; map, int>::iterator it; for (int i=0;i ratio(a/d,c/d); it = met.find(ratio); if (it == met.end()){ met.insert(mpair(ratio, 1)); } else { it->second+=1; } } else if (b == c) { ll d = evkl(a, b); pair ratio(b/d,a/d); it = met.find(ratio); if (it == met.end()){ met.insert(mpair(ratio, 1)); } else { it->second+=1; } } else if (c == a) { ll d = evkl(c, b); pair ratio(c/d,b/d); it = met.find(ratio); if (it == met.end()){ met.insert(mpair(ratio, 1)); } else { it->second+=1; } } } int res = 0; for (it = met.begin(); it != met.end(); ++it) { if (it->second > res) { res =it->second; } } cout << res << endl; return 0; }