Pagini recente » Cod sursa (job #1013526) | Cod sursa (job #2053149) | Cod sursa (job #242496) | Cod sursa (job #1247555) | Cod sursa (job #419192)
Cod sursa(job #419192)
#include<stdio.h>
#include<math.h>
FILE *in,*out;
int n,m[100000],s[100000],max[100000],aux,c=1,sum,ok=2,contor,i;
int main ()
{
in=fopen("oo.in","rt");
out=fopen("oo.out","wt");
fscanf(in,"%d",&n);
contor=n;
for(i=1;i<=n;i++)
fscanf(in,"%d",&m[i]);
s[1]=m[1]+m[n];
max[1]=s[1];
for(i=1;i<n;i++)
{
s[i+1]=m[i]+m[i+1];
max[i+1]=s[i+1];
}
for(i=1;i<n;i++)
for(int j=i;j<=n;j++)
{
if(max[i]<max[j])
{
aux=max[i];
max[i]=max[j];
max[j]=aux;
}
}
while(c<=n)
{
for(i=1;i<=n;i++)
{
if(s[i]==max[c])
{
if(m[i-1]!=-1 && m[i]!=-1)
{
sum+=s[i];
s[i]=-1;
if(i==n)
{
m[1]=m[i-2]=m[i-1]=m[i]=-1;
s[i-1]=s[1]=-1;
}
if(i==1)
{
m[1]=m[n]=m[2]=m[n-1]=-1;
s[n]=s[2]=-1;
}
if(i==2)
{
m[1]=m[2]=m[3]=m[n]=-1;
s[1]=s[3]=-1;
}
else
{
m[i+1]=m[i]=m[i-1]=m[i-2]=-1;
s[i+1]=s[i-1]=-1;
}
}
else
{
if(m[i+1]!=-1 && m[i]!=-1)
{
sum+=s[i];
s[i]=-1;
if(i==n)
{
m[1]=m[i-2]=m[i-1]=m[i]=-1;
s[i-1]=s[1]=-1;
}
if(i==1)
{
m[1]=m[n]=m[2]=m[n-1]=-1;
s[n]=s[2]=-1;
}
if(i==2)
{
m[1]=m[2]=m[3]=m[n]=-1;
s[1]=s[3]=-1;
}
else
{
m[i+1]=m[i]=m[i-1]=m[i-2]=-1;
s[i+1]=s[i-1]=-1;
}
}
}
}
}
c++;
}
fprintf(out,"%d",sum);
return 0;
}