Cod sursa(job #125023)

Utilizator cos_minBondane Cosmin cos_min Data 20 ianuarie 2008 10:59:21
Problema Inundatii Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 3, Clasele 11-12 Marime 0.9 kb
#include <stdio.h>
#include <vector>
using namespace std;

#define in "inundatii.in"
#define out "inundatii.out"
#define dim 50001

int N;
int X[dim], Y[dim], Z[dim];

inline int Abs(int A, int B) {
       if ( A < B ) return B - A;
       return A - B;
}

int main()
{
    freopen(in,"r",stdin);
    freopen(out,"w",stdout);
    
    scanf("%d", &N);
    for ( int i = 1; i <= N; i++ )
        scanf("%d%d%d", &X[i], &Y[i], &Z[i]);
    
    int Cn1, Cn2, Cn3, Total = 0;
    
    if ( N == 1 )
    {
         printf("0");
         
         return 0;
    }
    
    Cn1 = (X[1]+X[N]) / 2;
    Cn2 = (Y[1]+Y[N]) / 2;
    Cn3 = (Z[1]+Z[N]) / 2;
    
    for ( int i = 1; i <= N; i++ )
    {
        Total += Abs(X[i],Cn1);
        Total += Abs(Y[i],Cn2);
        Total += Abs(Z[i],Cn3);

        ++Cn1, ++Cn2, ++Cn3;
    }
    
    printf("%d", Total);
    
    return 0;
}