Cod sursa(job #227150)

Utilizator ktalyn93Catalin ktalyn93 Data 3 decembrie 2008 20:32:25
Problema Oo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.39 kb
#include <stdio.h>
long n,i,a[10000],max,st,p1,p2,g,s;
int main()
{
    freopen("oo.in","r",stdin);
    freopen("oo.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
     scanf("%d",&a[i]);
    g=0;
    do
    {
         max=1;
         g=0;
         for(i=1;i<=n-1;i++)
          {
                        if(a[i]!=-1 && a[i+1]!=-1)  
                          s=a[i]+a[i+1];
                          if(max<s)
                           {
                            p1=i;
                            p2=i+1;
                            max=s;
                           }
          }
       if(a[i]!=-1 && a[i+1]!=-1)  
         {   
         s=a[n]+a[1];
         if(max<s)
                           {
                            p1=i;
                            p2=i+1;
                            max=s;
                           }
         }
	 st=st+max;
	 if(p1==1)
	       {
		a[n]=-1;
		a[1]=-1;
		a[2]=-1;
		a[3]=-1;
	       }
	 else
	 if (p2==n)
	  {
		a[1]=-1;
		a[p1]=-1;
		a[p1-1]=-1;
		a[p2]=-1;
          }
	 for(i=p1-1;i<=p2+1;i++)
	  a[i]=-1;
	 for(i=1;i<=n-1;i++)
          if(a[i]!=-1 && a[i+1]!=-1)
           g=1;
         if(a[1]!=-1 && a[n]!=-1)
          g=1;
       }while(g==1);
       printf("%d",st);
       return 0;
}