Cod sursa(job #373736)

Utilizator bugyBogdan Vlad bugy Data 14 decembrie 2009 22:13:26
Problema Oo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<stdio.h>
using namespace std;
#define dim 100001

int i,n,v[dim],x,x2,poz,elem,suma,max,p,ok;
int main()
{
FILE *f=fopen("oo.in","r"), *g=fopen("oo.out","w");

fscanf(f,"%d%d",&n,&v[1]);

x2=v[1];

for(i=2;i<=n;i++)
	{fscanf(f,"%d",&x);
	v[i]=x+x2;x2=x;
		if(max<v[i]) {max=v[i]; poz=i;}
	}
v[1]+=x2;
	if(max<v[1]) {max=v[1]; poz=i;}
elem=n;
suma+=max; v[poz]=v[poz-1]=v[poz+1]=-1; elem-=3;
max=-1;
while(elem>0)
{
for(i=1;i<=n;i++)
	if(v[i]!=-1)
		{p++;ok=0;
		if(max<v[i]) {max=v[i]; poz=i;}}
	else {if(p==1) {v[i-1]=-1;elem--;ok=1;}
		else if(p==2)	{v[i-2]=v[i-1]=-1;elem-=2;ok=1;} p=0;}
	if(p==2)	{v[i-2]=v[i-1]=-1;elem-=2;ok=1;p=0;} 
	if(!ok)
	{
suma+=max; v[poz]=v[poz-1]=v[poz+1]=-1; elem-=3;}
max=-1;
}

fprintf(g,"%d\n",suma);

fclose(f);
fclose(f);

return 0;}