Pagini recente » Cod sursa (job #2677905) | Cod sursa (job #2912310) | Cod sursa (job #1960397) | Cod sursa (job #2606113) | Cod sursa (job #125296)
Cod sursa(job #125296)
#include <stdio.h>
#include <stdlib.h>
int n,i,j;
long xi[50000],yi[50000],zi[50000],x1,y3,z1,x2,y2,z2,x,y,z;
long long min=0;
int main()
{
FILE*f=fopen("inundatii.in","r");
FILE*g=fopen("inundatii.out","w");
fscanf(f,"%d",&n);
for (i=1; i<=n; i++)
fscanf(f,"%ld%ld%ld",&xi[i],&yi[i],&zi[i]);
if (n % 2==1)
{
x1=xi[n / 2 + 1]-1; y3=yi[n / 2 + 1]-1; z1=zi[n / 2 + 1]-1;
x2=xi[n / 2 + 1]+1; y2=yi[n / 2 + 1]+1; z2=zi[n / 2 + 1]+1;
for (i=n/2; i>=1; i--)
{
min+=abs(xi[i]-x1)+abs(yi[i]-y3)+abs(zi[i]-z1);
x1--; y3--; z1--;
min+=abs(xi[n-i+1]-x2)+abs(yi[n-i+1]-y2)+abs(zi[n-i+1]-z2);
x2++; y2++; z2++;
}
}
else
{
x=(xi[n / 2]+xi[n / 2 + 1]) / 2;
y=(yi[n / 2]+yi[n / 2 + 1]) / 2;
z=(zi[n / 2]+zi[n / 2 + 1]) / 2;
x1=x; y3=y; z1=z;
x2=x+1; y2=y+1; z2=z+1;
for (i=n/2; i>=1; i--)
{
min+=abs(xi[i]-x1)+abs(yi[i]-y3)+abs(zi[i]-z1);
x1--; y3--; z1--;
min+=abs(xi[n-i+1]-x2)+abs(yi[n-i+1]-y2)+abs(zi[n-i+1]-z2);
x2++; y2++; z2++;
}
}
fprintf(g,"%lld",min);
return 0;
}