#include <bits/stdc++.h>
const int maxn = 1e5 + 10;
const int mod = 20190414;
const int inf = 1e9;
const long long onf = 1e18;
int dir[4][2] = {0, -1, -1, 0, 0, 1, 1, 0};
int dx[] = {-2, -2, -1, -1, 1, 1, 2, 2};
int dy[] = {-1, 1, -2, 2, -2, 2, -1, 1};
using namespace std;
struct node {
  long long l, r;
  bool friend operator<(node a, node b) {
    if (abs(a.l - b.l) < abs(a.r - b.r))
      return a.r < b.r;
    else if (abs(a.l - b.l) > abs(a.r - b.r))
      return a.l > b.l;
    else if (abs(a.l - b.l) == abs(a.r - b.r)) {
      if (max(a.l, b.l) > max(a.r, b.r))
        return a.l > b.l;
      else
        return a.r < b.r;
    }
  }
} a[maxn];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%lld%lld", &a[i].l, &a[i].r);
  sort(a + 1, a + n + 1);
  long long ans = 0;
  for (int i = 1; i <= n; i++) ans += (i - 1) * a[i].l + (n - i) * a[i].r;
  printf("%lld\n", ans);
  return 0;
}
