Cod sursa(job #596028)

Utilizator Smaug-Andrei C. Smaug- Data 15 iunie 2011 15:01:29
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <cstdio>

#define MAXN 6000010

int main(){

  freopen("ssm.in", "r", stdin);
  freopen("ssm.out", "w", stdout);

  int N, i, maxs, l, r, minp;
  static int S[MAXN];

  scanf("%d", &N);
  for(i=1; i<=N; i++)
    scanf("%d", S+i);

  S[0]=0; maxs=-(1<<30); minp=0;
  for(i=1; i<=N; i++){
    S[i]+=S[i-1];

    if(S[i]-S[minp] > maxs)
      maxs=S[i]-S[minp], l=minp+1, r=i;

    if(S[i] < S[minp])
      minp=i;
  }

  printf("%d %d %d\n", maxs, l, r);
  
  return 0;

}