All pastes #497434 Raw Edit

Something

public text v1 · immutable
·published 2007-05-19 21:05 UTC
rendered paste body
/* 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 <stdio.h>
#include <stdlib.h>
#define PI 3.1415926535897932384626433

	//---------------ZMIENNE-GLOBALNE------------------
	long double odleglosc=0,odleglosc_poprzedni=0,promien=0,suma_promieni=0;
	//-------------------------------------------------

void 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;
	}
}
int compare (const void * a, const void * b) {
	return (*(int*)a - *(int*)b);
}
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<domow; i++)
			scanf("%d", &domy[i]);
		getchar();
		qsort(domy, domow, sizeof(long int), compare);
		ogrodzenie(domow, domy);
		printf("%.2f\n", 2*PI*suma_promieni);
		odleglosc=0,odleglosc_poprzedni=0,promien=0,suma_promieni=0;
		test--;
	}
	return 0;
}