Cod sursa(job #126063)

Utilizator sima_cotizoSima Cotizo sima_cotizo Data 21 ianuarie 2008 11:50:24
Problema Inundatii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <cstdio>

const long MAX = 50000;
long X[MAX], Y[MAX], Z[MAX];
long n;

inline long abs(long x) { return x<0?-x:x; }
long solve(long *A) {
	for (long i=0; i<n; ++i)
		A[i] -= i;
	long base;
	if ( (n&1)==0 )	base = (A[n/2]+A[n/2-1])/2;
	else			base = A[n/2];

//	printf("%ld\n", base);
	long s = 0;
	for (long i=0; i<n; ++i)
		s += abs(A[n-i-1]-base);
	return s;
}

int main() {
	freopen("inundatii.in", "r", stdin);
	scanf("%ld", &n);
	for (long i=0; i<n; ++i)
		scanf("%ld %ld %ld", X+i, Y+i, Z+i);
	fclose(stdin);

	fprintf(fopen("inundatii.out", "w"), "%ld\n", solve(X)+solve(Y)+solve(Z));
	return 0;
}