Cod sursa(job #126161)

Utilizator ScrazyRobert Szasz Scrazy Data 21 ianuarie 2008 16:14:16
Problema Inundatii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#define MaxN 50001

long x[MaxN], y[MaxN], z[MaxN];
long n;

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

long sol(long a[MaxN], long ma)
{
    long i, ans=0;
    for (i=1; i<=n; ++i)
	ans+=abs(a[i]-a[ma-i+1]);
    for (i=n; i>1; --i)
    {
	ans-=abs(a[i]-a[i-1])-1;
	a[i-1]=a[i]+1;
    }

    return ans;
} 

int main()
{

    freopen("inundatii.in","r",stdin);
    freopen("inundatii.out","w",stdout);

    long i;
    long mx, my, mz;
    long ans=0;
    mx=my=mz=0;
    scanf("%ld", &n);

    for (i=1; i<=n; ++i)
	scanf("%d%d%d", &x[++mx], &y[++my], &z[++mz]); 

    ans+=sol(x,mx);
    ans+=sol(y,my);
    ans+=sol(z,mz); 
   
    printf("%ld", ans);
    fclose(stdin);
    fclose(stdout);

    return 0;
}