Cod sursa(job #265856)

Utilizator marcelcodreaCodrea Marcel marcelcodrea Data 24 februarie 2009 16:56:15
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<stdio.h>
int a[6000005];
int b[6000005];
int maxsum;
int pi;
int poz;
int ps;
int n;
int min;
int main()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    scanf("%d",&n);
    for(int i = 1; i <= n; i++)
    {
     scanf("%d",&a[i]);
     b[i] = b[i-1] + a[i];
    }
    min = 0;
    maxsum = b[1];
    for(int i = 1; i <= n; i++)
     {
         if (b[i] - min > maxsum)
          {
              maxsum = b[i] - min;
              pi = poz + 1;
              ps = i;
          }
         if (min > b[i])
          {
              min = b[i];
              poz = i;
          }
     }
     printf("%d %d %d \n",maxsum, pi, ps);

    return 0;
}