#include <bits/stdc++.h>
using namespace std;
struct node {
  int num, id, add;
  bool operator<(const node &a) const {
    return num > a.num || (num == a.num && id < a.id);
  }
} a[105];
int pre[105];
int n;
int ok(int i, int j) {
  node x = a[i], y = a[j], xx = x, yy = y;
  xx.num = x.num + x.add, yy.num = y.num + y.add;
  if (x < y && yy < xx) return 1;
  if (y < x && xx < yy) return 1;
  if (x < y && y < xx && xx < yy) return 2;
  if (y < x && x < yy && yy < xx) return 2;
  if (x < y && yy < x && xx < yy) return 2;
  if (y < x && xx < y && yy < xx) return 2;
  return 0;
}
int main() {
  int ans = 0;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i].num >> a[i].add;
    a[i].id = i;
  }
  sort(a + 1, a + 1 + n);
  for (int i = 1; i <= n; i++) {
    for (int j = i + 1; j <= n; j++) {
      ans += ok(i, j);
    }
  }
  cout << ans << endl;
  return 0;
}
