Cod sursa(job #2052858)

Utilizator enedumitruene dumitru enedumitru Data 31 octombrie 2017 09:28:25
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
using namespace std;
ifstream f("ssm.in"); ofstream g("ssm.out");
int n,v[6000002];
int main()
{   f>>n;
    for(int i=1;i<=n;i++) f>>v[i];
    int c=0,p,maxneg=-2000000000,S=0,st=1,dr,Sm=0,stm,drm;
    for(dr=1;dr<=n;dr++)
    {   if(v[dr]>=0) c++;
        if(v[dr]<0 && v[dr]>maxneg) {maxneg=v[dr]; p=dr;}
        S+=v[dr];
        if(S<0) {st=dr+1; S=0;}
        else
        {
            if(S>Sm){Sm=S; stm=st; drm=dr;}
        }
    }
    if(c==0) g<<maxneg<<" "<<p<<" "<<p; else g<<Sm<<" "<<stm<<" "<<drm;
    g.close(); return 0;
}