Pagini recente » Cod sursa (job #1091167) | Cod sursa (job #399614) | Cod sursa (job #564691) | Cod sursa (job #1096473) | Cod sursa (job #2117299)
#include <fstream>
using namespace std;
int n, i, a[100003], s, v[100003], maxim;
ifstream fin("oo.in");
ofstream fout("oo.out");
void back(int i){
if(i<=n && a[i] == 0){
/// mai intai, iau ouale de pe pozitiile i si i+1
s += v[i]+v[i+1];
if(s>maxim)
maxim = s;
a[i-1]++;
a[i]++;
a[i+1]++;
a[i+2]++;
/// pozitia i+2 este blocata, deci trec la i+3
back(i+3);
/// acum consider ca nu iau ouale de pe i si i+1
/// retrag un blocaj de pe pozitiile respective
a[i-1]--;
a[i]--;
a[i+1]--;
a[i+2]--;
s -= v[i]+v[i+1];
/// trec la i+1
back(i+1);
}
}
int main(){
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
back(2);
fout<<maxim;
return 0;
}