Pagini recente » Cod sursa (job #1854718) | Cod sursa (job #2844045) | Cod sursa (job #552175) | Cod sursa (job #74064) | Cod sursa (job #262138)
Cod sursa(job #262138)
#include<stdio.h>
#define infile "ssm.in"
#define outfile "ssm.out"
int n; //lungimea sirului
int sm,lm,rm; //suma subsecventei maxime, indicele de inceput, si indicele de sfarsit
int sb,lb; //suma din dinamica curenta, respectiv indicele pozitiei de icneput
int main()
{
int i,x;
freopen(infile,"r",stdin);
freopen(outfile,"w",stdout);
scanf("%d\n",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&x); //citim elementul din sir
if(sb+x<x) sb=x,lb=i; //incepem subsecventa noua
else sb+=x; //adaugam elementul curent la subsecventa
if(sb>sm) //am gasit o subsecventa de lungime mai mare
sm=sb,lm=lb,rm=i;
}
printf("%d %d %d",sm,lm,rm);
fclose(stdin);
fclose(stdout);
return 0;
}