Cod sursa(job #1041046)
| Utilizator | Data | 25 noiembrie 2013 14:19:08 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <stdio.h>
using namespace std;
FILE *f=fopen("ssm.in","r");
FILE *g=fopen("ssm.out","w");
int s,smax,i,posmaxi,posmaxf,posi,n,v[6000001],ok;
int main()
{
fscanf(f,"%d",&n);
fscanf(f,"%d",&v[1]);
smax=v[1]; s=v[1];
posmaxi=1; posmaxf=1;
for (i=2;i<=n;i++)
{
fscanf(f,"%d",&v[i]);
s+=v[i];
if (s>smax)
{
smax=s;
posmaxi=posi;
posmaxf=i;
}
if (s<0)
{
s=0;
posi=i+1;
}
}
fprintf(g,"%d %d %d",smax,posmaxi,posmaxf);
}
