Cod sursa(job #771878)

Utilizator SebiSebiPirtoaca George Sebastian SebiSebi Data 27 iulie 2012 14:15:47
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<iostream>
#include<fstream>
using namespace std;
int dp[100002],v[100002],n,bestsum;
inline int maxim(int a, int b)
{
	if(a>=b)
		return a;
	return b;
}
inline void dinamica(int p, int n)
{
	int i;
	for(i=1;i<=p-1;i++)
		dp[i]=0;
	dp[p]=v[p]+v[p-1];
	for(i=p+1;i<=n;i++)
		dp[i]=maxim(dp[i-3]+v[i]+v[i-1],dp[i-1]);
	bestsum=maxim(bestsum,dp[n]);
}
int main ()
{
	int i;
	ifstream f("oo.in");
	ofstream g("oo.out");
	f>>n;
	for(i=1;i<=n;i++)
		f>>v[i];
	f.close();
	v[n+1]=v[1];
	dinamica(2,n-1);
	dinamica(3,n);
	dinamica(4,n+1);
	g<<bestsum;
	g.close();
	return 0;
}