Pagini recente » Cod sursa (job #1634539) | Cod sursa (job #1509147) | Cod sursa (job #2298417) | Cod sursa (job #1221114) | Cod sursa (job #583768)
Cod sursa(job #583768)
#include<stdio.h>
long long A[1001];
int N;
long long suma = 0;
unsigned long long sumax = 0;
long long a;
long long b;
int sa;
int sb;
void citire(void)
{
FILE *f = fopen("expresie.in","r");
fscanf(f,"%d ",&N);
for(int i=1;i<=N;i++)
{
fscanf(f,"%lld",&A[i]);
suma += A[i];
}
fclose(f);
}
void solve(void)
{
sumax = suma;
for(int i=1;i<=N-2;i++)
if(sumax<suma-A[i]-A[i+1]-A[i+2]+A[i]*A[i+1]*A[i+2])
sumax = suma-A[i]-A[i+1]-A[i+2]+A[i]*A[i+1]*A[i+2];
a = 1;
b = 1;
sa = 0;
sb = 0;
for(int i=1;i<=N-1;i++)
{
if(a<A[i]*A[i+1])
{
b = a;
sb = sa;
a = A[i]*A[i+1];
sa = A[i]+A[i+1];
}
else if(b<A[i]*A[i+1])
{
b = A[i]*A[i+1];
sb = A[i]+A[i+1];
}
}
if(sumax<suma-sa+a-sb+b)
sumax = suma-sa+a-sb+b;
}
int main()
{
FILE *f = fopen("expresie.out","w");
citire();
solve();
fprintf(f,"%llu",sumax);
fclose(f);
return 0;
}