Cod sursa(job #1204386)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 2 iulie 2014 19:57:43
Problema Inundatii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <cmath>

#define NMAX 50005
using namespace std;

int n;
int vx[NMAX];
int vy[NMAX];
int vz[NMAX];
int v[NMAX];

inline int calc()
{
    int i,j;

    long long int minim=0;
    for(i=1;i<=n;i++){
        long long int cand=0;
        for(j=1;j<=n;j++)
            cand+=(abs(v[i]-v[j]));
        cand+=((i-1ll)*i)/2;
        cand+=(((n-i+1ll)*(n-i))/2);;

        if(!minim)
            minim=cand;
        else if(cand<minim)
            minim=cand;
    }

    return minim;
}

int main()
{
    ifstream cin("inundatii.in");
    ofstream cout("inundatii.out");

    int i;
    cin>>n;

    for(i=1;i<=n;i++)
        cin>>vx[i]>>vy[i]>>vz[i];

    long long int sol=0;
    for(i=1;i<=n;i++)
        v[i]=vx[i];
    sol+=calc();

    for(i=1;i<=n;i++)
        v[i]=vy[i];
    sol+=calc();

    for(i=1;i<=n;i++)
        v[i]=vz[i];
    sol+=calc();

    cout<<sol<<'\n';

    cin.close();
    cout.close();
    return 0;
}