Pagini recente » Cod sursa (job #903461) | Cod sursa (job #1663523) | Cod sursa (job #2905770) | Cod sursa (job #2605629) | Cod sursa (job #373736)
Cod sursa(job #373736)
#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;}