Cod sursa(job #125984)

Utilizator sandyxpSanduleac Dan sandyxp Data 20 ianuarie 2008 22:34:13
Problema Inundatii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
#include <cmath>
#include <cstdlib>

#define FIN "inundatii.in"
#define FOUT "inundatii.out"
#define MAXN 50001
typedef unsigned long long ll;

int n;
int A[3][MAXN];

int main()
{
    int i, j;
    ll sum = 0;
    freopen(FIN, "r", stdin);
    freopen(FOUT,"w",stdout);
    scanf("%d", &n);
    for (i=0; i<n; ++i) {
        scanf("%d %d %d", &A[0][i], &A[1][i], &A[2][i]);
    }
    for (i=0; i<3; ++i) {
        ll nr = 0;
        for (j=0; j<n; ++j) {
            nr += A[i][j];
        }
        nr = (ll) round((double)nr/n);
        nr -= n/2;
        ll sum1 = 0, sum2 = 0, nrt = nr;
        for (j=0; j<n; ++j) {
            sum1 += abs(A[i][j] - nrt++);
        }
        nrt = nr - 1;
        for (j=0; j<n; ++j) {
            sum2 += abs(A[i][j] - nrt++);
        }
        if (sum1<sum2) sum += sum1; else sum += sum2;
    }
    printf("%llu\n", sum);
    return 0;
}