Cod sursa(job #2398937)

Utilizator blasterzMircea Dima blasterz Data 6 aprilie 2019 14:30:23
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
//Secventa de suma maxima
	
#include <cstdio>
#include <fstream>
	
#define dim 8192
	
#define oo 0x3f3f3f3f
	
char ax[dim];
	
int pz;
using namespace std;
 
	
inline void cit(int &x)
	
{
	
	x=0;
	
	while((ax[pz]<'0' || ax[pz]>'9') && ax[pz] != '-')
	
		if(++pz == dim) fread(ax,1,dim,stdin),pz=0;
	
	
	
	int neg=0;
	
	if(ax[pz] == '-')
	
	{
	
		neg=1;
	
		if(++pz == dim)fread(ax,1,dim,stdin),pz=0;
	
	}
	
	
	
	while(ax[pz] >= '0' && ax[pz] <= '9')
	
	{
	
		x=x*10+ax[pz]-'0';
	
		if(++pz == dim) fread(ax,1,dim,stdin),pz=0;
	
	}
	
	if(neg) x=-x;
	
}
	
 
	
int main()
	
{
	
	
	ifstream f("ssm.in");
    ofstream g("ssm.out");
	//freopen("ssm.in","r",stdin);
	
	//freopen("ssm.out","w",stdout);
	
	int n,i,v,s=0,j,p,q;
	
	//cit(n);
    f >> n;
	
	
	
	int sol=-oo;
	
	
	
	for(i=1; i <= n; ++i)
	
	{
        f >> v;
		//cit(v);
	
		
	
		if(s < 0) s=v, j=i;
	
		else s+=v;
	
		
	
		if(sol < s) sol=s, p=j, q=i;
	
	}
	
	
	g << sol << " " << p << " " << q << "\n";
	//printf("%d %d %d\n", sol, p, q);
	
	
	
	
	
	return 0;
	
}