Mai intai trebuie sa te autentifici.
Cod sursa(job #1283999)
| Utilizator | Data | 6 decembrie 2014 10:09:38 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.75 kb |
#include <stdio.h>
#include <stdlib.h>
int v[6000001];
int main()
{
FILE *fin,*fout;
int n,i,s,p,max,x;
fin=fopen("ssm.in","r");
fout=fopen("ssm.out","w");
fscanf(fin,"%d",&n);
for(i=1; i<=n; i++)
fscanf(fin,"%d",&v[i]);
s=v[1];
p=1;
max=v[1];
for(i=2; i<=n; i++)
{
if(s+v[i]>v[i])
s+=v[i];
else
s=v[i];
if(s>max)
{
max=s;
p=i;
}
}
s=v[p];
i=p;
while(i>0 && s!=max)
{
i--;
s+=v[i];
}
x=i-1;
while(v[x]==0)
x--;
if(x<i-1)
i=x+1;
fprintf(fout,"%d %d %d\n",max,i,p);
fclose(fin);
fclose(fout);
return 0;
}
