#include <bits/stdc++.h>
using namespace std;
struct node {
  int a, b;
  int nex;
  bool operator<(const node& nn) const { return a + b < nn.a + nn.b; }
} t[200110];
int main() {
  int n;
  while (~scanf("%d", &n)) {
    priority_queue<node> Q;
    while (!Q.empty()) Q.pop();
    long long ans = 0;
    for (int i = 0; i < n; ++i) {
      int id1 = i << 1, id2 = id1 + 1;
      scanf("%d%d%d%d", &t[id1].a, &t[id1].b, &t[id2].a, &t[id2].b);
      if (t[id1].a + t[id1].b >= t[id2].a + t[id2].b) {
        t[id1].nex = id2;
        Q.push(t[id1]);
      } else if (t[id1].a > t[id2].b)
        ans += t[id1].a - t[id2].b;
      else if (t[id1].b > t[id2].a)
        ans -= t[id1].b - t[id2].a;
      t[id2].nex = -1;
    }
    node tmp;
    int cur = 0;
    while (!Q.empty()) {
      tmp = Q.top();
      Q.pop();
      if (!cur)
        ans += tmp.a;
      else
        ans -= tmp.b;
      cur ^= 1;
      if (tmp.nex != -1) Q.push(t[tmp.nex]);
    }
    printf("%lld\n", ans);
  }
  return 0;
}
