#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; struct fraction{ long long p, q; fraction(long long P=0, long long Q=1) : p(P), q(Q) { if (Q < 0){ p *= -1; q *= -1; } long long g=gcd(abs(p), abs(q)); p /= g; q /= g; } bool operator < (const fraction & other) const{ if (p < 0) return -p*other.q > -other.p*q; return p*other.q < other.p*q; } bool operator == (const fraction & other) const{ return (p == other.p) && (q == other.q); } bool operator > (const fraction & other) const{ if (p < 0) return -p*other.q < -other.p*q; return p*other.q > other.p*q; } }; int main(){ ll N, ans=0; cin >> N; vector> v(N); vector x(N), y(N); for (int i=0; i> x[i] >> y[i]; for (int i=0; i= 2) ans++; } cout << ans << endl; return 0; }