Cod sursa(job #1956241)

Utilizator mihai2003LLL LLL mihai2003 Data 6 aprilie 2017 16:40:16
Problema Arbori indexati binar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <cstdio>

using namespace std;
int v[30005];
int st[30005];
int dr[30005];
int main()
{
    freopen("secv7.in","r",stdin);
    freopen("secv7.out","w",stdout);
    int n,i,nr1,nr2,s=0,max=0,poz,poz2,max2;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
      scanf("%d",&v[i]);
      if(v[i]>max)
      {
          max=v[i];
          poz=i;
      }
    }
    max=0;
    for(i=1;i<=n;i++)
      {
          if(v[i]>max)
            max=v[i];
        st[i]=max;
      }
    max=0;
    for(i=n;i>=1;i--)
    {
        if(v[i]>max)
          max=v[i];
        dr[i]=max;
    }
    max2=10001;
    for(i=2;i<n;i++)
    {
    if(st[i-1]+v[i]+dr[i+1]<max2 && i!=poz)
    {
    max2=st[i-1]+v[i]+dr[i+1];
    poz2=i-1;
    }
    }
    if(poz2==n-2)
      printf("%d\n%d %d",max+v[1]+v[n],1,n-1);
      else
      printf("%d\n%d %d",max2,poz2,poz2+1);
    return 0;
}