Cod sursa(job #1915832)

Utilizator tanasaradutanasaradu tanasaradu Data 8 martie 2017 22:41:06
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
#define nmax 6000005
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n,a[nmax];
void Citire()
{
    int i;
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>a[i];
}
void Rezolvare()
{
    int i,ox,oy,poz,s,smax;
    s=smax=a[1];
    ox=oy=poz=1;
    if(s<0)
    {
        s=0;
        poz=2;
    }
    for(i=2;i<=n;i++)
    {
        s+=a[i];
        if(smax<s)
        {
            smax=s;
            ox=poz;
            oy=i;
        }
        if(s<0)
        {
            s=0;
            poz=i+1;
        }
    }
    fout<<smax<<" "<<ox<<" "<<oy<<"\n";
}
int main()
{
    Citire();
    Rezolvare();
    fin.close();
    fout.close();
    return 0;
}