func_code_string: #include <bits/stdc++.h>   using namespace std;   using namespace rel_ops;   struct Fraction {     long long p, q;     static inline __attribute__((always_inline)) long long gcd(long long a,                                                                long long b) {       while (b ^= a ^= b ^= a = a % b)         ;       return a;     }     inline __attribute__((always_inline)) void clear() { p = 0, q = 1; }     inline __attribute__((always_inline)) Fraction() { clear(); }     inline __attribute__((always_inline)) Fraction(long long a, long long b) {       p = a, q = b;     }     inline __attribute__((always_inline)) Fraction& simplify() {       long long x = gcd(p, q);       p /= x, q /= x;       return *this;     }     inline __attribute__((always_inline)) bool operator<(         const Fraction& rhs) const {       return p * rhs.q < rhs.p * q;     }     inline __attribute__((always_inline)) bool operator==(         const Fraction& rhs) const {       return p * rhs.q == rhs.p * q;     }   };   const int N = 1e5 + 5;   pair<Fraction, Fraction> d[N];   int n;   long long ans;   inline __attribute__((always_inline)) bool pffcomp(       const pair<Fraction, Fraction>& a, const pair<Fraction, Fraction>& b) {     return a.first < b.first || (a.first == b.first && a.second > b.second);   }   void mergesort(int l, int r) {     static pair<Fraction, Fraction> tmp[N];     if (l >= r) return;     int mid = (l + r) >> 1;     mergesort(l, mid);     mergesort(mid + 1, r);     int pl = l, pr = mid + 1, pt = l;     while (pl <= mid && pr <= r) {       if (d[pl].second < d[pr].second)         tmp[pt++] = d[pl++];       else {         ans += mid - pl + 1;         tmp[pt++] = d[pr++];       }     }     while (pl <= mid) tmp[pt++] = d[pl++];     while (pr <= r) tmp[pt++] = d[pr++];     for (pt = l; pt <= r; ++pt) d[pt] = tmp[pt];   }   int main() {     int w;     scanf( %d%d , &n, &w);     for (int i = 1, x, v; i <= n; ++i) {       scanf( %d%d , &x, &v);       d[i] = make_pair(Fraction(-x, v - w).simplify(),                        Fraction(-x, v + w).simplify());     }     sort(d + 1, d + 1 + n, pffcomp);     mergesort(1, n);     printf( %I64d n , ans);     return 0;   }   