Cod sursa(job #2539736)

Utilizator cyg_SerbanBFlorin Gheorghe cyg_SerbanB Data 6 februarie 2020 11:07:28
Problema Inundatii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
//cojoegay
#include<bits/stdc++.h>
using namespace std;
struct pct
{
    int x,y,z;
};
pct v[50005];
int main()
{
    freopen("inundatii.in","r",stdin);
    freopen("inundatii.out","w",stdout);
    int n,i;
    long long ans=0;
    scanf("%d",&n);
    for(i=1;i<=n;++i)
        scanf("%d%d%d",&v[i].x,&v[i].y,&v[i].z);
    for(i=1;i<n;++i)
    {
        //x
        pct c1=v[i],c2=v[i+1];
        int s=v[i].x+v[i+1].x;
        if(s%2==0)
            v[i].x=s/2-1,v[i+1].x=s/2;
        else
            v[i].x=s/2,v[i+1].x=s/2+1;
        //y
        s=v[i].y+v[i+1].y;
        if(s%2==0)
            v[i].y=s/2-1,v[i+1].y=s/2;
        else
            v[i].y=s/2,v[i+1].y=s/2+1;
        //z
        s=v[i].z+v[i+1].z;
        if(s%2==0)
            v[i].z=s/2-1,v[i+1].z=s/2;
        else
            v[i].z=s/2,v[i+1].z=s/2+1;
        ans=abs(c1.x-v[i].x)+abs(c1.y-v[i].y)+abs(c1.z-v[i].z)+abs(c2.x-v[i+1].x)+abs(c2.y-v[i+1].y)+abs(c2.z-v[i+1].z);
    }
    printf("%lld",ans);
    return 0;
}