Cod sursa(job #1503415)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 16 octombrie 2015 01:34:10
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

vector<int> v;

int maxim(int a, int b, int c)
{
	return max(max(a,b),c);
}

int stuff(int start, int end)
{
	vector<int> w(v.size());
	for(int i=0;i<3;i++)
	{
		w[start+i] = v[start-1+i] + v[start-2+i];
	}
	for(int i=start+3;i<=end;i++)
	{
		w[i] = v[i-1] + v[i-2] + maxim(w[i-3], w[i-4], w[i-5]);
	}
	return w[end];
}

int main ()
{
	int n;
	ifstream fin("oo.in");
	ofstream fout("oo.out");
	fin>>n;
	v.resize(n+20);

	for(int i=0;i<n;i++)
	{
		fin>>v[i];
	}

	for(int i=0;i<20;i++)
	{
		v[n+i]=v[i];
	}
	int mm=0;
	for(int i=0;i<5;i++)	
	{
		mm = max(mm, stuff(3+i, n+i));
	}	
	fout<<mm;
	fout.close();
	return 0;
}
	/*
	xoox
	^  ^
	 xoox
	  xoox
 	   xoox
	    xoox
	*/