Cod sursa(job #2876240)
Utilizator | Data | 23 martie 2022 10:12:47 | |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.95 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int n,x,st,dr,smax=INT_MIN,s,solst,soldr;
bool ok=0;
int main()
{f>>n;
for (int i=1;i<=n;i++) {f>>x;
if (x>=0) ok=1;
s+=x;
if (s<0) {if (ok==0) {st=i;
if (x>smax) smax=x,solst=soldr=i;
}
else {st=i+1;
s=0;
}
}
else {if (s>smax) {soldr=i;
solst=st;
smax=s;
}
}
}
g<<smax<<' '<<solst<<' '<<soldr;
}