Cod sursa(job #681384)

Utilizator marinutzacatana marina marinutza Data 16 februarie 2012 23:29:20
Problema Oo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
using namespace std;
ifstream f("oo.in");
ofstream g("oo.out");
int n,a[10010],x[10010],sum[10010],i;
int main()
{
	f>>n;
	for(i=1;i<=n;i++)
	{
		f>>a[i];
	}
	for(i=1;i<=n;i++)
	{
		switch(x[i-1])
		{
			case 0: 
				sum[i]=sum[i-1]+a[i];
				x[i]=1;
				break;
			case 1:
				sum[i]=sum[i-1]+a[i];
				x[i]=2;
				break;
			case 2:
				if(x[i-4]==0)sum[i-3]=sum[i-4];
				if(sum[i-3]+a[i-1]+a[i]<sum[i-1])
				{
					sum[i]=sum[i-1];
					x[i]=0;
				}
				else
				{
					sum[i]=sum[i-3]+a[i-1]+a[i];
					x[i-3]=x[i-2]=0;
					x[i-1]=1;
					x[i]=2;
				}
				break;
		}
	}
	switch(x[1])
	{
		case 0:
			for(i=n;x[i]!=2;i--);
			break;
		case 1:
			for(i=n;x[i]!=0;i--);
			break;
		case 2:
			for(i=n;x[i]!=1;i--);
			break;
	}
	g<<sum[i];
	return 0;
}