Cod sursa(job #1641785)

Utilizator DaniellDa Vinci Daniell Data 9 martie 2016 10:50:50
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

using namespace std;
ifstream fin("expresie.in");
ofstream fout("expresie.out");
long long n,max1,max2,max3,v[1001],i;
int main()
{long long k=1,j=3,i1,i2,j1,j2,j3,j4,p=1;
fin>>n;
for(i=1;i<=n;i++)fin>>v[i];
while(j!=n)
{p=1;
    for(i=k;i<=j;i++)p*=v[i];
if(p>max3)
    {max3=p;i1=k;i2=j;}
k++;j++;}
k=1;j=2;
while(j<=n)
{p=1;
for(i=k;i<=j;i++)
p*=v[i];
if(p>max1)
{max2=max1;j3=j1;j4=j2;max1=p;j1=k;j2=j;}
else if(p>max2)
{max2=p;j3=k;j4=j;}
k++;j++;
}
p=0;
if(max3>=(max1+max2)){for(i=1;i<i1;i++)p+=v[i];for(i=i2+1;i<=n;i++)p+=v[i];p+=max3;
}
else{for(i=j3;i<=j4;i++)v[i]=0;for(i=j1;i<=j2;i++)v[i]=0;for(i=1;i<=n;i++)p+=v[i];p=p+max1+max2;}
fout<<p;
    return 0;
}