Cod sursa(job #124974)

Utilizator peanutzAndrei Homorodean peanutz Data 20 ianuarie 2008 10:42:10
Problema Inundatii Scor 90
Compilator cpp Status done
Runda preONI 2008, Runda 3, Clasele 11-12 Marime 0.86 kb
#include <stdio.h>
#include <string.h>

#define NMAX 50010

inline long long ABS(long long a)
{
    if(a < 0) return -a;
    return a;
}

int n;
long long x[NMAX], y[NMAX], z[NMAX];

void read()
{
    scanf("%d", &n);
    for(int i = 1; i <= n; ++i) scanf("%lld %lld %lld", &x[i], &y[i], &z[i]);
}

long long solve(long long x[NMAX])
{
    int m = n / 2;
    long long res = 0;
    for(int i = m-1; i; --i)
    {
        res += ABS((x[i+1]-1) - x[i]);
        x[i] = x[i+1]-1;
    }
    for(int i = m+1; i <= n; ++i)
    {
        res += ABS(x[i] - (x[i-1]+1));
        x[i] = x[i-1]+1;
    }
    return res;
}

int main()
{
    freopen("inundatii.in", "r", stdin);
    freopen("inundatii.out", "w", stdout);
    
    read();

    printf("%lld\n", (long long)solve(x) + solve(y) + solve(z));
    
    return 0;
}