Cod sursa(job #713702)

Utilizator andu04Popa Andi andu04 Data 14 martie 2012 21:11:19
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include <cstdio>
using namespace std;

int n,isc,ifc,isf,iff;
long x,sumc,sumf=-999999999;


void citire()
{
    FILE *fin=fopen("ssm.in","r");
    FILE *fout=fopen("ssm.out","w");
    fscanf(fin,"%d",&n);
    fscanf(fin,"%ld",&x);
    sumc=x;
    isc=ifc=1;
    --n;
    while (n)
    {
        fscanf(fin,"%ld",&x);
        if (x>=0)
        {
            if (sumc<0)
            {
                if (sumc>sumf)
                    sumf=sumc,isf=isc,iff=ifc;
                sumc=0;isc=ifc+1;
            }
            sumc+=x;
            ifc++;
        }
        else
        {
            if (sumc>sumf)
                sumf=sumc,isf=isc,iff=ifc;
            if (x>sumc)
                sumc=x,isc=(++ifc);
            else
            {
                sumc+=x;
                ifc++;
            }
        }
        --n;
    }
    if (sumc>sumf) sumf=sumc,isf=isc,iff=ifc;
    fprintf(fout,"%ld %d %d",sumf,isf,iff);
}
int main()
{
   citire();
   return 0;
}