1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <bits/stdc++.h>

int n;

int X[]={0, 0, 1, 1, 1, 0, -1, -1, -1};
int Y[]={0, 1, 1, 0, -1, -1, -1, 0, 1};
std::pair<int, int>tab[250003];
std::pair<int, int>akt[250003];

void przesun(int a, int x)
{
    long long int ax=akt[a].first, ay=akt[a].second;
    long long int xx=akt[x].first, xy=akt[x].second;
    int min=0;
    for(int i=0; i<9; i++)
        if((ax+X[i]-xx)*(ax+X[i]-xx)+(ay+Y[i]-xy)*(ay+Y[i]-xy)<(ax+X[min]-xx)*(ax+X[min]-xx)+(ay+Y[min]-xy)*(ay+Y[min]-xy))
            min=i;
    akt[a]={ax+X[min], ay+Y[min]};
}

long long int rozwiaz(int x)
{
    for(int i=1; i<=n; i++)
        akt[i]=tab[i];
    for(int i=1; i<=n; i++)
        if(i!=x)
            for(int j=1; j<=n; j++)
                if(j!=x && i!=j)
                    przesun(j, i);
    long long int wynik=0;
    for(int i=1; i<=n; i++)
        wynik+=(long long int)akt[i].first*akt[i].second;
    return wynik;
}

int main()
{
    scanf("%d", &n);
    for(int i=1; i<=n; i++)
        scanf("%d%d", &tab[i].first, &tab[i].second);

    for(int i=1; i<=n; i++)
        printf("%lld\n", rozwiaz(i));
}