#!/usr/bin/perl
use feature 'say';
sub f {
if (@_) {
my ($mxi, $mxd);
for (0..$#$v-1) {
($a, $b) = @$v[$_, $_+1];
$d = ($a + $b) * $c - $a * $b;
($mxi, $mxd) = ($_, $d) if !defined $mxd or $d >= $mxd; }
f($v, @_)
}
$v
}
use Math::Trig 'pi';
use List::Util 'sum';
while (<DATA>) {
next if /^#/;
@t = @{f
([@s[0,1,0]], @s[2..$#s])}; $th = 2 * pi / $N;
@a = map{$t[$_] * $t[$_+1]} 0..$#t-1; $a = 0.5 * sin($th) * sum
@a; say "{$_}\n=> $a // {@t[0..$#t-1]}";
}
__DATA__
4,3,2,1,0
10,0,0,10,10,0,10,10
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
IyEvdXNyL2Jpbi9wZXJsCnVzZSBmZWF0dXJlICdzYXknOwpzdWIgZiB7CiAgbXkgJHYgPSBzaGlmdDsKICBpZiAoQF8pIHsKICAgIG15ICRjID0gc2hpZnQ7CiAgICBteSAoJG14aSwgJG14ZCk7CiAgICBmb3IgKDAuLiQjJHYtMSkgewogICAgICAoJGEsICRiKSA9IEAkdlskXywgJF8rMV07CiAgICAgICRkID0gKCRhICsgJGIpICogJGMgLSAkYSAqICRiOwogICAgICAoJG14aSwgJG14ZCkgPSAoJF8sICRkKSBpZiAhZGVmaW5lZCAkbXhkIG9yICRkID49ICRteGQ7CiAgICB9CiAgICBzcGxpY2UoQCR2LCAxKyRteGksIDAsICRjKTsKICAgIGYoJHYsIEBfKQogIH0KICAkdgp9CnVzZSBNYXRoOjpUcmlnICdwaSc7CnVzZSBMaXN0OjpVdGlsICdzdW0nOwp3aGlsZSAoPERBVEE+KSB7CiAgbmV4dCBpZiAvXiMvOwogIGNob21wOwogIEBzID0gc29ydHskYTw9PiRifSBzcGxpdCcsJzsKICBAdCA9IEB7ZihbQHNbMCwxLDBdXSwgQHNbMi4uJCNzXSl9OwogICROID0gQHM7CiAgJHRoID0gMiAqIHBpIC8gJE47CiAgQGEgPSBtYXB7JHRbJF9dICogJHRbJF8rMV19IDAuLiQjdC0xOwogICRhID0gMC41ICogc2luKCR0aCkgKiBzdW0gQGE7CiAgc2F5ICJ7JF99XG49PiAkYSAvLyB7QHRbMC4uJCN0LTFdfSI7Cn0KX19EQVRBX18KNCwzLDIsMSwwCjEwLDAsMCwxMCwxMCwwLDEwLDEwCjEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2
{4,3,2,1,0}
=> 10.9371499373943 // {0 1 3 4 2}
{10,0,0,10,10,0,10,10}
=> 141.421356237309 // {0 0 0 10 10 10 10 10}
{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
=> 280.698297639793 // {1 2 4 6 8 10 12 14 16 15 13 11 9 7 5 3}