#include <bits/stdc++.h>
using namespace std;
const int MAXN = 200005;
const long long INF = 1e15;
int n;
long long a[MAXN];
long long D[MAXN];
int L[MAXN], R[MAXN];
bool used[MAXN];
long long ans[MAXN];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
if (!(cin >> n)) return 0;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
sort(a + 1, a + 1 + n);
D[0] = INF;
D[n] = INF;
for (int i = 1; i < n; i++) {
D[i] = a[i+1] - a[i];
L[i] = i - 1;
R[i] = i + 1;
}
L[0] = -1;
R[n] = n + 1;
priority_queue<pair<long long, int>, vector<pair<long long, int>>, greater<pair<long long, int>>> pq;
for (int i = 1; i < n; i++) {
pq.push({D[i], i});
}
long long current_cost = 0;
for (int k = 1; k <= n / 2; k++) {
while (used[pq.top().second]) {
pq.pop();
}
long long v = pq.top().first;
int id = pq.top().second;
pq.pop();
current_cost += v;
ans[k] = current_cost;
int l = L[id];
int r = R[id];
used[l] = true;
used[r] = true;
D[id] = D[l] + D[r] - D[id];
pq.push({D[id], id});
L[id] = L[l];
R[id] = R[r];
if (L[id] >= 0) R[L[id]] = id;
if (R[id] <= n) L[R[id]] = id;
}
for (int k = 1; k <= n / 2; k++) {
cout << ans[k] << (k == n / 2 ? "" : " ");
}
cout << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE1BWE4gPSAyMDAwMDU7CmNvbnN0IGxvbmcgbG9uZyBJTkYgPSAxZTE1OwoKaW50IG47CmxvbmcgbG9uZyBhW01BWE5dOwpsb25nIGxvbmcgRFtNQVhOXTsKaW50IExbTUFYTl0sIFJbTUFYTl07CmJvb2wgdXNlZFtNQVhOXTsKbG9uZyBsb25nIGFuc1tNQVhOXTsKCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgCiAgICBjaW4udGllKDApOyAKICAgIGNvdXQudGllKDApOwogICAgCiAgICBpZiAoIShjaW4gPj4gbikpIHJldHVybiAwOwogICAgCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgIH0KICAgIAogICAgc29ydChhICsgMSwgYSArIDEgKyBuKTsKCiAgICBEWzBdID0gSU5GOwogICAgRFtuXSA9IElORjsKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgRFtpXSA9IGFbaSsxXSAtIGFbaV07CiAgICAgICAgTFtpXSA9IGkgLSAxOwogICAgICAgIFJbaV0gPSBpICsgMTsKICAgIH0KICAgIExbMF0gPSAtMTsgCiAgICBSW25dID0gbiArIDE7CgogICAgcHJpb3JpdHlfcXVldWU8cGFpcjxsb25nIGxvbmcsIGludD4sIHZlY3RvcjxwYWlyPGxvbmcgbG9uZywgaW50Pj4sIGdyZWF0ZXI8cGFpcjxsb25nIGxvbmcsIGludD4+PiBwcTsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKykgewogICAgICAgIHBxLnB1c2goe0RbaV0sIGl9KTsKICAgIH0KCiAgICBsb25nIGxvbmcgY3VycmVudF9jb3N0ID0gMDsKICAgIGZvciAoaW50IGsgPSAxOyBrIDw9IG4gLyAyOyBrKyspIHsKICAgICAgICB3aGlsZSAodXNlZFtwcS50b3AoKS5zZWNvbmRdKSB7CiAgICAgICAgICAgIHBxLnBvcCgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBsb25nIGxvbmcgdiA9IHBxLnRvcCgpLmZpcnN0OwogICAgICAgIGludCBpZCA9IHBxLnRvcCgpLnNlY29uZDsKICAgICAgICBwcS5wb3AoKTsKCiAgICAgICAgY3VycmVudF9jb3N0ICs9IHY7CiAgICAgICAgYW5zW2tdID0gY3VycmVudF9jb3N0OwoKICAgICAgICBpbnQgbCA9IExbaWRdOwogICAgICAgIGludCByID0gUltpZF07CgogICAgICAgIHVzZWRbbF0gPSB0cnVlOwogICAgICAgIHVzZWRbcl0gPSB0cnVlOwoKICAgICAgICBEW2lkXSA9IERbbF0gKyBEW3JdIC0gRFtpZF07CiAgICAgICAgcHEucHVzaCh7RFtpZF0sIGlkfSk7CgogICAgICAgIExbaWRdID0gTFtsXTsKICAgICAgICBSW2lkXSA9IFJbcl07CgogICAgICAgIGlmIChMW2lkXSA+PSAwKSBSW0xbaWRdXSA9IGlkOwogICAgICAgIGlmIChSW2lkXSA8PSBuKSBMW1JbaWRdXSA9IGlkOwogICAgfQoKICAgIGZvciAoaW50IGsgPSAxOyBrIDw9IG4gLyAyOyBrKyspIHsKICAgICAgICBjb3V0IDw8IGFuc1trXSA8PCAoayA9PSBuIC8gMiA/ICIiIDogIiAiKTsKICAgIH0KICAgIGNvdXQgPDwgIlxuIjsKICAgIAogICAgcmV0dXJuIDA7Cn0K