Pagini recente » Cod sursa (job #346843) | Cod sursa (job #2882212) | Cod sursa (job #2760041) | Cod sursa (job #1704693) | Cod sursa (job #126315)
Cod sursa(job #126315)
#include <stdio.h>
#include <stdlib.h>
long i,j;
long long xi[50000],yi[50000],zi[50000],x1,y1,z1,x2,y2,z2,x,y,z;
long long n,min=0;
int main()
{
FILE*f=fopen("inundatii.in","r");
FILE*g=fopen("inundatii.out","w");
fscanf(f,"%ld",&n);
for (i=1; i<=n; i++)
fscanf(f,"%lld%lld%lld",&xi[i],&yi[i],&zi[i]);
if (n % 2==1)
{
x1=xi[n / 2 + 1]-1; y1=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]-y1)+abs(zi[i]-z1);
x1--; y1--; 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; y1=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]-y1)+abs(zi[i]-z1);
x1--; y1--; 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,"%ld",min);
return 0;
}