Cod sursa(job #124904)

Utilizator MariusMarius Stroe Marius Data 20 ianuarie 2008 10:06:37
Problema Inundatii Scor 100
Compilator cpp Status done
Runda preONI 2008, Runda 3, Clasele 11-12 Marime 0.76 kb
#include <cstdio>
using namespace std;

const char iname[] = "inundatii.in";
const char oname[] = "inundatii.out";

#define MAXN  50005

int X[MAXN], Y[MAXN], Z[MAXN];

typedef long long i64;

i64 solve(int X[], int n)
{
	int mid = (n + 1) / 2;
	int coord;
	i64 ret = 0;
	
	coord = X[mid] + 1;
    for (int i = mid + 1; i <= n; ++ i, ++ coord)
		ret += (i64)(coord - X[i]);
	coord = X[mid] - 1;
	for (int i = mid - 1; i >= 1; -- i, -- coord)
		ret += (i64)(X[i] - coord);
	return ret;
}

int main(void)
{
	freopen(iname, "r", stdin);
	freopen(oname, "w", stdout);

	int n;
	
	scanf("%d\n", &n);
	for (int i = 1; i <= n; ++ i)
		scanf("%d %d %d\n", &X[i], &Y[i], &Z[i]);
	printf("%lld\n", solve(X, n) + solve(Y, n) + solve(Z, n));

	return 0;
}