Pagini recente » Cod sursa (job #2934395) | Cod sursa (job #785102) | Cod sursa (job #1753395) | Cod sursa (job #1219134) | Cod sursa (job #2032293)
#include<stdio.h>
#include<utility>
#define MAXN 500
int din(int N);
FILE*fin,*fout;
std::pair<int,int> dimensions[MAXN+1];
int main()
{
fin=fopen("podm.in","r");
fout=fopen("podm.out","w");
int N;
fscanf(fin,"%d",&N);
int x;
fscanf(fin,"%d",&x);
dimensions[0].second=x;
for(int i=1;i<=N;i++)
{
fscanf(fin,"%d",&x);
dimensions[i].first=dimensions[i-1].second;
dimensions[i].second=x;
}
int ans=din(N);
fprintf(fout,"%d",ans);
fclose(fin);
fclose(fout);
}
int din(int N)
{
int ant=dimensions[1].first*dimensions[1].second*dimensions[2].second,preant=0;
if(N==1)
{
return 0;
}
for(int i=3;i<=N;i++)
{
if(ant+dimensions[1].first*dimensions[i-1].second*dimensions[i].second < preant+dimensions[i-1].first*dimensions[i-1].second*dimensions[i].second+dimensions[1].first*dimensions[i-1].first*dimensions[i].second)
{
preant=ant;
ant=ant+dimensions[1].first*dimensions[i-1].second*dimensions[i].second;
}
else
{
int aux=ant;
ant=preant+dimensions[i-1].first*dimensions[i-1].second*dimensions[i].second+dimensions[1].first*dimensions[i-1].first*dimensions[i].second;
preant=ant;
}
}
return ant;
}