#include <bits/stdc++.h>
using namespace std;
const int maxn = (int)1e5 * 2 + 7;
int a[maxn], b[maxn], t[4 * maxn], n, W, H;
void build(int v, int l, int r) {
  if (r - l == 1) {
    t[v] = a[l];
    return;
  }
  build(2 * v + 1, l, (l + r) / 2);
  build(2 * v + 2, (l + r) / 2, r);
  t[v] = max(t[2 * v + 1], t[2 * v + 2]);
}
int get(int v, int l, int r, int ql, int qr) {
  if (ql <= l && qr >= r) return t[v];
  if (ql >= r || qr <= l) return 0;
  return max(get(2 * v + 1, l, (l + r) / 2, ql, qr),
             get(2 * v + 2, (l + r) / 2, r, ql, qr));
}
void upd(int v, int l, int r, int pos, int x) {
  if (r - l == 1) {
    t[v] = x;
    return;
  }
  if (pos < (l + r) / 2) {
    upd(2 * v + 1, l, (l + r) / 2, pos, x);
  } else {
    upd(2 * v + 2, (l + r) / 2, r, pos, x);
  }
  t[v] = max(t[2 * v + 1], t[2 * v + 2]);
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    int ww, hh;
    scanf("%d %d", &ww, &hh);
    a[i] = hh;
    b[i] = ww;
    W += ww;
  }
  build(0, 0, n);
  for (int i = 0; i < n; i++) {
    W -= b[i];
    upd(0, 0, n, i, -10000);
    H = get(0, 0, n, 0, n);
    printf("%d ", H * W);
    W += b[i];
    upd(0, 0, n, i, a[i]);
  }
  return 0;
}
