Cod sursa(job #126064)

Utilizator sima_cotizoSima Cotizo sima_cotizo Data 21 ianuarie 2008 11:51:48
Problema Inundatii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <cstdio>

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

inline long long abs(long long x) { return x<0?-x:x; }
long long solve(long long *A) {
	for (long i=0; i<n; ++i)
		A[i] -= i;
	long 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 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("%lld %lld %lld", X+i, Y+i, Z+i);
	fclose(stdin);

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