Cod sursa(job #125622)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 20 ianuarie 2008 15:17:48
Problema Inundatii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <stdio.h>

long long n, contor, px, py, pz;

typedef struct 
{
	long long x, y, z;
}  casa;
casa v[50001];

long long modul(long long x)
{
	if (x >= 0) return x;
	else return -x;
}

int main()
{
	freopen("inundatii.in","r",stdin);
	freopen("inundatii.out","w",stdout);
	
	scanf("%lld",&n);
	long long i;

	for (i = 1; i <= n; i++) scanf ("%lld %lld %lld",&v[i].x, &v[i].y, &v[i].z);

	if (n % 2 == 0)
	{	
		px=(v[n/2].x+v[n/2+1].x)/2-n/2+1;
		py=(v[n/2].y+v[n/2+1].y)/2-n/2+1;
		pz=(v[n/2].z+v[n/2+1].z)/2-n/2+1; 

		for (i = 1; i <= n; i++) 
		{
			contor += modul(px - v[i].x) + modul(py - v[i].y) + modul(pz - v[i].z);
			px++; py++; pz++;
		}
		

	}
	else
	{
		px=v[n/2+1].x-n/2; py=v[n/2+1].y-n/2; pz=v[n/2+1].z-n/2;

		for (i = 1; i <= n; i++) 
		{
			contor += modul(px - v[i].x) + modul(py - v[i].y) + modul(pz - v[i].z);
			px++; py++; pz++;
		}
	}

	printf("%lld\n",contor);
	return 0;
}