Cod sursa(job #1126496)
Utilizator | andrei Walrus21 | Data | 26 februarie 2014 23:56:38 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <stdio.h>
#include <algorithm>
#define NM 6000001
#define SM 2147483648
using namespace std;
FILE *f=fopen("ssm.in","r");
FILE *g=fopen("ssm.out","w");
int i,N,j,ii,is,sm(SM),s[NM],S[NM];
int main()
{
fscanf(f,"%d",&N);
for(i=1;i<=N;i++)
{
fscanf(f,"%d",&S[i]);
if(s[i-1]>0) s[i]=s[i-1]+S[i];
else {s[i]=S[i]; j=i;}
if(s[i]>sm) {sm=s[i]; ii=j; is=i;}
}
fprintf(g,"%d %d %d",sm,ii,is);
return 0;
}