Cod sursa(job #1670262)

Utilizator RadduFMI Dinu Radu Raddu Data 31 martie 2016 16:49:02
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<fstream>
#include<limits.h>
#define DIM 300005
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");

int n,x,i,sum,bst=INT_MIN,b,e,b1=1;

char buff[DIM];
int poz = 0;
void Cit(int &a)
{
    bool neg = false;
    while(!isdigit(buff[poz]))
    {
        if(buff[poz]=='-')
            neg = true;
        if(++poz == DIM)
        f.read(buff,DIM),poz = 0;
    }
    a = 0;
    while(isdigit(buff[poz]))
    {
        a = a*10 + buff[poz]-'0';
        if(++poz == DIM)
            f.read(buff,DIM),poz = 0;
    }

    if(neg) a*=-1;
}
int main()
{
Cit(n);

for(i=1;i<=n;i++)
 {Cit(x); sum+=x;
  if (sum>bst) {bst=sum; b=b1; e=i;}
  if (sum<0) {sum=0; b1=i+1;}
 }

g<<bst<<" "<<b<<" "<<e;
return 0;
}