Pagini recente » Cod sursa (job #1804755) | Cod sursa (job #1222514) | Cod sursa (job #346311) | Cod sursa (job #288936) | Cod sursa (job #124883)
Cod sursa(job #124883)
#include <stdio.h>
#define MAXN 50005
int N;
int X[MAXN], Y[MAXN], Z[MAXN];
inline long long solve( int x[] )
{
long long MIN, S = 0;
int curx = x[0] + 1, left = N, right = 0;
for (int k = 0; k < N; k++)
S += curx + (N - k - 1) - x[k];
MIN = S;
for (curx--; curx >= x[N - 1] - 1; curx--)
{
S -= left;
S += right;
if (S < MIN)
MIN = S;
if (curx + right == x[right])
left--, right++;
}
return MIN;
}
int main()
{
freopen("inundatii.in", "rt", stdin);
freopen("inundatii.out", "wt", stdout);
scanf("%d", &N);
for (int i = 0; i < N; i++)
scanf("%d %d %d", X + i, Y + i, Z + i);
printf("%lld\n", solve(X) + solve(Y) + solve(Z));
return 0;
}