/* Bartosz Kula bartosz_kula 4 109215 */ /********************************************************************** * Project : SPOJ PZPI06_3 (c) copyright * Org : Gdansk Univeristy of Technology / ETI / group 4 * File : * Author : student / Bartosz Kula / 109215 / bartosz_kula(at)o2.pl * Date : 30.03.2007 * About : Ogrodzenia *---------------------------------------------------------------------- * History: * --- * Todo: * --- ***********************************************************************/ #include #define PI 3.1415926535897932384626433 //---------------ZMIENNE-GLOBALNE------------------ long double wynik=0; long double odleglosc=0,odleglosc_poprzedni=0,promien=0,suma_promieni=0; //------------------------------------------------- int ogrodzenie(int domow, long int *domy) { int i=0; for(i=1;i<=domow;i++) { odleglosc = domy[i]-domy[i-1]; if(i == domow) { promien = odleglosc_poprzedni; suma_promieni += promien; break; } else promien = odleglosc; if(odleglosc_poprzedni < promien && i!=1) promien = odleglosc_poprzedni; odleglosc_poprzedni = odleglosc-promien; suma_promieni += promien; } return wynik = 2*suma_promieni*PI; } void qsort(long int *T, long int Lo, long int Hi) { long int i,j; long int x; x = T[(Lo+Hi)/2]; i = Lo; j = Hi; do { while (T[i] < x) ++i; while (T[j] > x) --j; if (i<=j) { int tmp = T[i]; T[i] = T[j]; T[j] = tmp; ++i; --j; } } while(i < j); if (Lo < j) qsort(T, Lo, j); if (Hi > i) qsort(T, i, Hi); } int main() { #ifndef ONLINE_JUDGE freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); #endif ONLINE_JUDGE //------------------ZMIENNE------------------------ long int test,i,domow; long int domy[100009]; //------------------------------------------------- scanf("%d\n", &test); while(test) { scanf("%d", &domow); getchar(); for(i=0; i