#include <bits/stdc++.h>
#pragma comment(linker, "/stack:225450978")
#pragma GCC optimize("Ofast")
using namespace std;
const long long Mod = 1000000007LL, INF = 1e9, LINF = 1e18;
const long double Pi = 3.141592653589793116, EPS = 1e-9,
                  Gold = ((1 + sqrt(5)) / 2);
long long keymod[] = {1000000007LL, 1000000009LL, 1000000021LL, 1000000033LL};
long long keyCount = sizeof(keymod) / sizeof(long long);
template <class T>
int getbit(T s, int i) {
  return (s >> i) & 1;
}
template <class T>
T onbit(T s, int i) {
  return s | (T(1) << i);
}
template <class T>
T offbit(T s, int i) {
  return s & (~(T(1) << i));
}
template <class T>
int cntbit(T s) {
  return __builtin_popcountll(s);
}
auto TimeStart = chrono::steady_clock::now();
auto TimeEnd = chrono::steady_clock::now();
void ControlIO(int argc, char* argv[]);
void TimerStart();
void TimerStop();
void Exit();
string cppstr_infile = "FILE.IN";
string cppstr_outfile = "FILE.OUT";
long long n;
vector<long long> x, y;
void Input() {
  cin >> n;
  x.resize(n);
  y.resize(n);
  for (long long i = 0; i < n; i++) cin >> x[i] >> y[i];
}
void Solve() {
  long long minx = *min_element(x.begin(), x.end());
  long long maxx = *max_element(x.begin(), x.end());
  long long miny = *min_element(y.begin(), y.end());
  long long maxy = *max_element(y.begin(), y.end());
  long long ymin_fromcritx = LINF, ymax_fromcritx = -LINF;
  long long xmin_fromcrity = LINF, xmax_fromcrity = -LINF;
  pair<long long, long long> MinX, MaxX, MinY, MaxY;
  vector<vector<string> > Mask(n);
  long long Init = 0;
  for (long long i = 0; i < n; i++) {
    if (x[i] == minx) {
      Mask[i].push_back("minx");
      MinX = make_pair(x[i], y[i]);
      ymin_fromcritx = min(ymin_fromcritx, y[i]);
      ymax_fromcritx = max(ymax_fromcritx, y[i]);
    }
    if (x[i] == maxx) {
      Mask[i].push_back("maxx");
      MaxX = make_pair(x[i], y[i]);
      Init = (i + 1) % n;
      ymin_fromcritx = min(ymin_fromcritx, y[i]);
      ymax_fromcritx = max(ymax_fromcritx, y[i]);
    }
    if (y[i] == miny) {
      Mask[i].push_back("miny");
      MinY = make_pair(x[i], y[i]);
      xmin_fromcrity = min(xmin_fromcrity, x[i]);
      xmax_fromcrity = max(xmax_fromcrity, x[i]);
    }
    if (y[i] == maxy) {
      Mask[i].push_back("maxy");
      MaxY = make_pair(x[i], y[i]);
      xmin_fromcrity = min(xmin_fromcrity, x[i]);
      xmax_fromcrity = max(xmax_fromcrity, x[i]);
    }
  }
  bool filledby3 = false;
  for (long long i = 0; i < n; i++) {
    if (Mask[i].size() > 1) {
      filledby3 = true;
      break;
    }
  }
  if (filledby3) {
    for (long long i = 3; i <= n; i++)
      cout << (maxx - minx + maxy - miny) * 2 << " ";
    return;
  }
  long long res3 = -LINF;
  string statex = "min", statey = "max";
  res3 = max(res3, (maxx - minx) * 2 + (maxy - ymin_fromcritx) * 2);
  res3 = max(res3, (maxx - minx) * 2 + (ymax_fromcritx - miny) * 2);
  res3 = max(res3, (maxy - miny) * 2 + (maxx - xmin_fromcrity) * 2);
  res3 = max(res3, (maxy - miny) * 2 + (xmax_fromcrity - minx) * 2);
  for (long long z = Init; z < Init + n; z++) {
    long long i = z % n;
    if (!Mask[i].empty()) {
      if (statex == "min" && statey == "max")
        statex = "max";
      else if (statex == "max" && statey == "max")
        statey = "min";
      else if (statex == "max" && statey == "min")
        statex = "min";
      else if (statex == "min" && statey == "min")
        statey = "max";
      continue;
    }
    if (statex == "min" && statey == "max")
      res3 = max(res3, ((max(MaxY.first, x[i]) - minx)) * 2 +
                           (maxy - min(MinX.second, y[i])) * 2);
    else if (statex == "max" && statey == "max")
      res3 = max(res3, ((maxx - min(MaxY.first, x[i]))) * 2 +
                           (maxy - min(MinX.second, y[i])) * 2);
    else if (statex == "max" && statey == "min")
      res3 = max(res3, ((maxx - min(MaxY.first, x[i]))) * 2 +
                           (max(MinX.second, y[i]) - miny) * 2);
    else if (statex == "min" && statey == "min")
      res3 = max(res3, ((max(MaxY.first, x[i]) - minx)) * 2 +
                           (max(MinX.second, y[i]) - miny) * 2);
  }
  cout << res3 << " ";
  for (long long i = 4; i <= n; i++)
    cout << (maxx - minx + maxy - miny) * 2 << " ";
}
int main(int argc, char* argv[]) {
  ControlIO(argc, argv);
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  Input();
  TimerStart();
  Solve();
  TimerStop();
  return 0;
}
void ControlIO(int argc, char* argv[]) {
  char* infile = new char[cppstr_infile.size() + 1];
  char* outfile = new char[cppstr_outfile.size() + 1];
  strcpy(infile, cppstr_infile.c_str());
  strcpy(outfile, cppstr_outfile.c_str());
}
void TimerStart() {}
void TimerStop() {}
void Exit() {
  TimerStop();
  exit(0);
}
