Cod sursa(job #2314961)

Utilizator AnnaLipianuLipianu Ana AnnaLipianu Data 9 ianuarie 2019 12:04:17
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <cstdio>
using namespace std;
int main()
{
	int n,x,s,pi,pmi,pf,pmf,i,sm,xm=-2147483647,ok=0,pxm;
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    scanf("%d%d",&n,&x);
    if(x>0)
		s=x;
	else
		s=0;
	sm=s;
	pi=pf=pmi=pmf=1;
	for(i=2;i<=n;i++)
	{
		scanf("%d",&x);
		if(x<=0&&x>xm)
			{
				xm=x;
				pxm=i;
			}
		if(x>0)ok=1;
		if(s+x>0)
		{
			s=s+x;
			pf++;
		}
		else
		{
			s=0;
			pi=i+1;
			pf=i;
			if(x==0)pi=i;
		}
		if(s>sm)
		{
			sm=s;
			pmi=pi;
			pmf=pf;
		}
	}
	if(ok==1)
	printf("%d %d %d",sm,pmi,pmf);
	else
	printf("%d %d %d",xm,pxm,pxm);
    return 0;
}