Cod sursa(job #790964)
Utilizator | Alexandru Dascalu adascalu | Data | 22 septembrie 2012 17:37:53 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
using namespace std;
#include<cstdio>
int main ()
{
long int n,i,bestsum=-2000000000,x,y,s=0,min,minpoz,smin=0,elem;
FILE *f=fopen("ssm.in","r");
FILE *g=fopen("ssm.out","w");
fscanf(f,"%ld",&n);
minpoz=0;
for(i=1;i<=n;i++)
{
fscanf(f,"%ld",&elem);
s+=elem;
if(bestsum<s-smin)
bestsum=s-smin,x=minpoz+1,y=i;
if(s<smin)
smin=s,minpoz=i;
}
fprintf(g,"%ld %ld %ld",bestsum,x,y);
fclose(f);
fclose(g);
return 0;
}