Pagini recente » Cod sursa (job #937418) | Cod sursa (job #1597174) | Cod sursa (job #2954325) | Cod sursa (job #2546790) | Cod sursa (job #125099)
Cod sursa(job #125099)
#include <stdio.h>
#include <vector>
using namespace std;
#define NMAX 50002
#define pb push_back
#define sz size
long long st[NMAX],dr[NMAX];
long int i,j,k,n,m;
long long sol;
vector<int> x,y,z;
void DP(vector<int> v)
{
st[0]=0;
st[1]=0;
for (i=2;i<=n;i++)
st[i]=st[i-1]+(v[i-1]-v[i]+1)*(i-1);
dr[n]=0;
dr[n+1]=0;
for (i=n-1;i;i--)
dr[i]=dr[i+1]+(v[i]-v[i+1]+1)*(n-i);
long long ret;
ret=dr[1]+st[1];
for (i=1;i<=n;i++)
if (dr[i]+st[i]<ret) ret=dr[i]+st[i];
sol=sol+ret;
}
int main()
{
freopen("inundatii.in","r",stdin);
freopen("inundatii.out","w",stdout);
scanf("%ld",&n);
x.pb(-50002);
y.pb(-50002);
z.pb(-50002);
for (i=1;i<=n;i++)
{
scanf("%ld",&k);
x.pb(k);
scanf("%ld",&k);
y.pb(k);
scanf("%ld",&k);
z.pb(k);
}
DP(x);
DP(y);
DP(z);
printf("%lld",sol);
return 0;
}