Pagini recente » Cod sursa (job #3163393) | Cod sursa (job #2806291) | Cod sursa (job #2852762) | Cod sursa (job #2267822) | Cod sursa (job #125463)
Cod sursa(job #125463)
#include <stdio.h>
#define Nmax 50005
int N,x[Nmax],y[Nmax],z[Nmax],i;
long long st[Nmax],dr,minx,miny,minz;
inline long long minim(long long a,long long b) { return a<b?a:b; }
void citire()
{
freopen("inundatii.in","r",stdin);
scanf("%d",&N);
for (i=1;i<=N;++i)
scanf("%d %d %d",&x[i],&y[i],&z[i]);
fclose(stdin);
}
void solve()
{
//mutare dupa x
for (i=2;i<=N;++i)
st[i]=st[i-1]+(i-1)*(x[i-1]-x[i]+1);
minx=st[N];
dr=0;
for (i=N-1;i>0;--i)
{
dr=dr+(N-i)*(x[i]-x[i+1]+1);
minx=minim(st[i]+dr,minx);
}
//mutare dupa y
for (i=2;i<=N;++i)
st[i]=st[i-1]+(i-1)*(y[i-1]-y[i]+1);
miny=st[N];
dr=0;
for (i=N-1;i>0;--i)
{
dr=dr+(N-i)*(y[i]-y[i+1]+1);
miny=minim(st[i]+dr,miny);
}
//mutare dupa z
for (i=2;i<=N;++i)
st[i]=st[i-1]+(i-1)*(z[i-1]-z[i]+1);
minz=st[N];
dr=0;
for (i=N-1;i>0;--i)
{
dr=dr+(N-i)*(z[i]-z[i+1]+1);
minz=minim(st[i]+dr,minz);
}
}
int main()
{
citire();
solve();
freopen("inundatii.out","w",stdout);
printf("%lld",minx+miny+minz);
fclose(stdout);
return 0;
}