Pagini recente » Cod sursa (job #2907139) | Cod sursa (job #1266140) | Cod sursa (job #2758405) | Cod sursa (job #3197837) | Cod sursa (job #125367)
Cod sursa(job #125367)
#include<fstream.h>
#include<math.h>
#define dim 50001
unsigned long mat[dim][3],cont,cont2;
int main()
{ifstream f("inundatii.in");
ofstream g("inundatii.out");
unsigned long n,i,x,y,z,pct,man;
f>>n;
for(i=1;i<=n;i++)
f>>mat[i][0]>>mat[i][1]>>mat[i][2];
f.close();
if(n>1)
{cont=0;
pct=n/2+1;
x=mat[pct][0];
y=mat[pct][1];
z=mat[pct][2];
//mut punctele mai mici decat pct
man=1;
for(i=(pct-1);i>=1;i--)
{cont+=(mat[i][0]-x+man)+(mat[i][1]-y+man)+(mat[i][2]-z+man);
man++;
}
//mut punctele mai mari decat pct
for(i=(pct+1);i<=n;i++)
{x++;y++;z++;
cont+=(x-mat[i][0])+(y-mat[i][1])+(z-mat[i][2]);
}
cont2=0;
pct=n/2;
x=mat[pct][0];
y=mat[pct][1];
z=mat[pct][2];
//mut punctele mai mici decat pct
man=1;
for(i=(pct-1);i>=1;i--)
{cont2+=(mat[i][0]-x+man)+(mat[i][1]-y+man)+(mat[i][2]-z+man);
man++;
}
//mut punctele mai mari decat pct
for(i=(pct+1);i<=n;i++)
{x++;y++;z++;
cont2+=(x-mat[i][0])+(y-mat[i][1])+(z-mat[i][2]);
}
if(cont2<cont) cont=cont2;
}
else cont=3;
g<<cont<<'\n';
g.close();
return 0;
}