Cod sursa(job #850247)

Utilizator danutbodbodnariuc danut danutbod Data 8 ianuarie 2013 10:28:52
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>
#include<string.h>
#define NMax 6000003
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
long long n,i,j,x,semn,maxi,pmaxi,ss,sum,a[NMax];
int main()
{
    f>>n;
    for (i=1; i<=n; i++)f>>a[i];
    maxi=-1000000000000LL;
    for (i=1; i<=n; i++){
       if(sum>=0)sum+=a[i];
        else sum=a[i];
       if(maxi<sum){maxi=sum;pmaxi=i;}
    }
    for(i=pmaxi; i>=1; i--){
          ss+=a[i];
          if(ss==maxi)break;
    }
    while(a[i-1]==0)i--;
    g<<maxi<<" "<<i<<" "<<pmaxi<<'\n';
    return 0;
}