Pagini recente » Rating Mihai Andrei Popa (Mihu) | Cod sursa (job #1511524) | Cod sursa (job #2485821) | Cod sursa (job #814870) | Cod sursa (job #588432)
Cod sursa(job #588432)
#include<fstream.h>
long a[501][501][2],m1,m2,t1,t2,v1,v2;
int dim[501],i,n,j,d,k;
int main()
{ifstream f("podm.in");
ofstream g("podm.out");
f>>n;
for(i=0;i<=n;i++)
f>>dim[i];
for(i=1;i<=n;i++)
a[i][i][0]=0,a[i][i][1]=0;
for(i=1;i<n;i++)
{t1=(dim[i-1]*dim[i])/1000;
t2=(dim[i-1]*dim[i])%1000;
a[i][i+1][0]=(t1*dim[i+1])/1000;
a[i][i+1][1]=(((t1*dim[i+1])%1000)+(t2*dim[i+1])/1000)*1000+(t2*dim[i+1])%1000;}
for(d=2;d<n;d++)
for(i=1;i<=n-d;i++)
{a[i][i+d][0]=400000000;
a[i][i+d][1]=0;
for(k=i;k<i+d;k++)
{t1=(dim[i-1]*dim[k])/1000;
t2=(dim[i-1]*dim[k])%1000;
v1=(t1*dim[i+d])/1000;
v2=(((t2*dim[i+d])/1000)+((t1*dim[i+d])%1000))*1000+(t2*dim[i+d])%1000;
m1=a[i][k][0]+a[k+1][i+d][0]+v1;
m2=a[i][k][1]+a[k+1][i+d][1]+v2;
if(a[i][i+d][0]>m1||(a[i][i+d][0]==m1&&a[i][i+d][1]>m2))
a[i][i+d][0]=m1,a[i][i+d][1]=m2;}}
if(a[1][n][0]==0)
g<<a[1][n][1];
else
{g<<(a[1][n][0]+a[1][n][1]/1000000);
if(a[1][n][1]%1000000<100000)
g<<"0";
g<<a[1][n][1]%1000000;}
f.close();
g.close();
return 0;}