#include <algorithm>
#include <cstdio>
#include <stdint.h>
using namespace std;
struct point
{
int x, y;
bool top (void) const
{
return y > 0 || (y == 0 && x > 0);
}
bool operator < (point const & other) const
{
if (top () != other.top ())
{
return top () > other.top ();
}
return (int64_t) x * other.y < (int64_t) y * other.x;
}
};
int main (void)
{
int n;
while (scanf (" %d", &n) != EOF)
{
int m = n - 1;
point b [n];
for (int i = 0; i < n; i++)
{
scanf (" %d %d", &b[i].x, &b[i].y);
}
double res = 0.0;
for (int i = 0; i < n; i++)
{
point a [m * 2];
for (int j = 0; j < n; j++)
{
if (j != i)
{
a[j - (j > i)].x = b[j].x - b[i].x;
a[j - (j > i)].y = b[j].y - b[i].y;
}
}
sort (a, a + m);
for (int j = 0; j < m; j++)
{
a[j + m].x = a[j].x;
a[j + m].y = a[j].y;
}
double sumx = a[0].x;
double sumy = a[0].y;
int k = 1;
for (int j = 0; j < m; j++)
{
sumx -= a[j].x;
sumy -= a[j].y;
while (((int64_t) a[j].x * a[k].y <
(int64_t) a[j].y * a[k].x) ||
j == k)
{
sumx += a[k].x;
sumy += a[k].y;
k++;
}
res += a[j].y * sumx - a[j].x * sumy;
}
}
res /= n;
res /= (n - 1);
res /= (n - 2);
printf ("%.20lf\n", res);
}
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPHN0ZGludC5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBwb2ludAp7CiAgICBpbnQgeCwgeTsKCglib29sIHRvcCAodm9pZCkgY29uc3QKCXsKCQlyZXR1cm4geSA+IDAgfHwgKHkgPT0gMCAmJiB4ID4gMCk7Cgl9CgoJYm9vbCBvcGVyYXRvciA8IChwb2ludCBjb25zdCAmIG90aGVyKSBjb25zdAoJewoJCWlmICh0b3AgKCkgIT0gb3RoZXIudG9wICgpKQoJCXsKCQkJcmV0dXJuIHRvcCAoKSA+IG90aGVyLnRvcCAoKTsKCQl9CgkJcmV0dXJuIChpbnQ2NF90KSB4ICogb3RoZXIueSA8IChpbnQ2NF90KSB5ICogb3RoZXIueDsKCX0KfTsKCmludCBtYWluICh2b2lkKQp7CglpbnQgbjsKCXdoaWxlIChzY2FuZiAoIiAlZCIsICZuKSAhPSBFT0YpCgl7CgkJaW50IG0gPSBuIC0gMTsKCQlwb2ludCBiIFtuXTsKCQlmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCQl7CgkJCXNjYW5mICgiICVkICVkIiwgJmJbaV0ueCwgJmJbaV0ueSk7CgkJfQoKCQlkb3VibGUgcmVzID0gMC4wOwoJCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQoJCXsKCQkJcG9pbnQgYSBbbSAqIDJdOwoJCQlmb3IgKGludCBqID0gMDsgaiA8IG47IGorKykKCQkJewoJCQkJaWYgKGogIT0gaSkKCQkJCXsKCQkJCQlhW2ogLSAoaiA+IGkpXS54ID0gYltqXS54IC0gYltpXS54OwoJCQkJCWFbaiAtIChqID4gaSldLnkgPSBiW2pdLnkgLSBiW2ldLnk7CgkJCQl9CgkJCX0KCQkJc29ydCAoYSwgYSArIG0pOwoJCQlmb3IgKGludCBqID0gMDsgaiA8IG07IGorKykKCQkJewoJCQkJYVtqICsgbV0ueCA9IGFbal0ueDsKCQkJCWFbaiArIG1dLnkgPSBhW2pdLnk7CgkJCX0KCgkJCWRvdWJsZSBzdW14ID0gYVswXS54OwoJCQlkb3VibGUgc3VteSA9IGFbMF0ueTsKCQkJaW50IGsgPSAxOwoJCQlmb3IgKGludCBqID0gMDsgaiA8IG07IGorKykKCQkJewoJCQkJc3VteCAtPSBhW2pdLng7CgkJCQlzdW15IC09IGFbal0ueTsKCQkJCXdoaWxlICgoKGludDY0X3QpIGFbal0ueCAqIGFba10ueSA8CgkJCQkgICAgICAgIChpbnQ2NF90KSBhW2pdLnkgKiBhW2tdLngpIHx8CgkJCQkgICAgICAgaiA9PSBrKQoJCQkJewoJCQkJCXN1bXggKz0gYVtrXS54OwoJCQkJCXN1bXkgKz0gYVtrXS55OwoJCQkJCWsrKzsKCQkJCX0KCQkJCXJlcyArPSBhW2pdLnkgKiBzdW14IC0gYVtqXS54ICogc3VteTsKCQkJfQoJCX0KCgkJcmVzIC89IG47CgkJcmVzIC89IChuIC0gMSk7CgkJcmVzIC89IChuIC0gMik7CgkJcHJpbnRmICgiJS4yMGxmXG4iLCByZXMpOwoJfQoJcmV0dXJuIDA7Cn0K