Cod sursa(job #126066)

Utilizator ViksenVictor-Nicolae Savu Viksen Data 21 ianuarie 2008 11:57:23
Problema Inundatii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>

long long X[50000],Y[50000],Z[50000],n;

long long abs (long long x) { return (x>0)?(x):(-x);}

long long Solve ( long long* X , long long x )
{
    long long d = X[n/2], r=0 ,i;
    for ( i=0 ; i<n  ; i++ ) r+= abs (X[i]-d);
    return r;
}

int main ()
{
    long long i,x=0,y=0,z=0;
    freopen ( "inundatii.in" , "r" , stdin );
    scanf ( "%d" , &n );
    for ( i=0 ; i<n ; i++ )
    {
        scanf ( "%d %d %d" , &X[i] , &Y[i] , &Z[i] );
        X[i]-=i; Y[i]-=i; Z[i]-=i;
        x+=X[i]; y+=Y[i]; z+=Z[i];
    }
    fclose ( stdin );
    
    long long r = Solve ( X , x );
    r += Solve ( Y , y );
    r += Solve ( Z , z );

    freopen ( "inundatii.out" , "w" , stdout );
    printf ( "%ld\n" , r );
    fclose ( stdout );

    return 0;
}