Cod sursa(job #811926)
| Utilizator | Data | 13 noiembrie 2012 10:18:27 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <iostream>
#include <stdio.h>
using namespace std;
FILE *f=fopen("ssm.in","r");
FILE *g=fopen("ssm.out","w");
int sum[600001],v[600001],i,n,bg,en,j;
int main()
{
fscanf(f,"%d",&n);
sum[0]=0;
for(i=1;i<=n;i++)
{
fscanf(f,"%d",&v[i]);
sum[i]=sum[i-1]+v[i];
}
long long mx=-6000000000000;
for(i=n;i>=1;i--)
for(j=0;j<=i-1;j++)
if(sum[i]-sum[j]>mx)
{
mx=sum[i]-sum[j];
bg=j+1;
en=i;
}
fprintf(g,"%d ",mx);
fprintf(g,"%d ",bg);
fprintf(g,"%d",en);
fclose(g);
return 0;
}
