Pagini recente » Cod sursa (job #2485297) | Cod sursa (job #2610906) | Cod sursa (job #1236116) | Cod sursa (job #2910309) | Cod sursa (job #1583996)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
bool mat[1001];
bool mult[1001];
long long matr[1001];
ifstream in("expresie.in");
ofstream out("expresie.out");
int main() {
int n;
in >> n;
for(int i = 0; i < n; i++)
in >> matr[i];
long long maxMult1 = 0;
int maxMult1Poz = 0;
long long maxMult2 = 0;
int maxMult2Poz = 0;
for(int i = 0; i < n-1; i++) {
if(matr[i] * matr[i+1] > maxMult1) {
maxMult1 = matr[i] * matr[i+1];
maxMult1Poz = i;
continue;
}
if(matr[i] * matr[i+1] > maxMult2) {
maxMult2 = matr[i] * matr[i+1];
maxMult2Poz = i;
}
}
long long maxMult3 = 0;
int maxMult3Poz = 0;
for(int i = 0; i < n-2; i++) {
if(matr[i] * matr[i+1] * matr[i+2] > maxMult3) {
maxMult3 = matr[i] * matr[i+1] * matr[i+2];
maxMult3Poz = i;
}
}
long long sum = 0;
for(int i = 0; i < n; i++) {
if(i == maxMult1Poz)
sum += maxMult1;
else if(i == maxMult1Poz+1)
sum += 0;
else if(i == maxMult2Poz)
sum += maxMult2;
else if(i == maxMult2Poz+1)
sum += 0;
else
sum += matr[i];
}
long long sum2 = 0;
matr[maxMult3Poz] = maxMult3;
matr[maxMult3Poz+1] = 0;
matr[maxMult3Poz+2] = 0;
for(int i = 0; i < n; i++)
sum2 += matr[i];
if(sum > sum2)
out << sum;
else
out << sum2;
return 0;
}