Pagini recente » Monitorul de evaluare | Clasament test_mustang | Solutii Winter Challenge 2008 runda 1 | Cod sursa (job #1686040) | Cod sursa (job #419064)
Cod sursa(job #419064)
#include <fstream>
using namespace std;
const char IName[]="oo.in";
const char OName[]="oo.out";
const int NMax=100010;
const int AnsMax=1<<30;
ifstream FIn(IName);
ofstream FOut(OName);
int N,V[NMax],Ans=-AnsMax;
inline int MAX(int a,int b){
return a>b?a:b;
}
void EXE(),IN(),OUT(),PD_GENERARE(int);
int main(){EXE();return 0;}
void EXE(){
IN();
if(N==2){
FOut<<V[4]+V[5]<<"\n";
return;
}
V[2]=V[N+2],V[3]=V[N+3];
PD_GENERARE(1);PD_GENERARE(2);PD_GENERARE(3);
OUT();
}
void PD_GENERARE(int x){
int PD[NMax];
memset(PD,0,sizeof(PD));
for(int i=x+2;i<N+x;++i){
PD[i]=PD[i-1];
PD[i]=MAX(PD[i],PD[i-3]+V[i]+V[i-1]);
}
Ans=MAX(Ans,PD[N+x-1]);
}
void IN(){
FIn>>N;
for(int i=4;i<=N+3;FIn>>V[i++]);
}
void OUT(){
FOut<<Ans<<"\n";
}