Pagini recente » Monitorul de evaluare | Cod sursa (job #2650636) | Cod sursa (job #1319211) | Cod sursa (job #2376833) | Cod sursa (job #2421907)
#include <stdio.h>
#include <stdlib.h>
#define Nmax 100002
using namespace std;
int v1[Nmax];
int v2[Nmax];
int d1[Nmax];
int d2[Nmax];
int max(int a, int b){
if(b>a)
a=b;
return a;
}
/// a o o o - |X X|
int main()
{
FILE *fin, *fout;
fin=fopen("oo.in","r");
fout=fopen("oo.out","w");
int n,i;
fscanf(fin,"%d",&n);
fscanf(fin,"%d",&v1[1]);
for(i=2;i<n;i++){
fscanf(fin,"%d",&v1[i]);
v2[i-1]=v1[i];
}
fscanf(fin,"%d",&v2[i-1]);
int sol=0;
for(i=2;i<n;i++){
d1[i]=v1[i]+v1[i-1];
int add=0;
if(i-3>0)
add=max(add,d1[i-3]);
if(i-4>0)
add=max(add,d1[i-4]);
if(i-5>0)
add=max(add,d1[i-5]);
d1[i]+=add;
d2[i]=v2[i]+v2[i-1];
add=0;
if(i-3>0)
add=max(add,d2[i-3]);
if(i-4>0)
add=max(add,d2[i-4]);
if(i-5>0)
add=max(add,d2[i-5]);
d2[i]+=add;
sol = max(sol, d1[i]);
sol = max(sol, d2[i]);
}
fprintf(fout,"%d",sol);
fclose(fin);
fclose(fout);
return 0;
}