Pagini recente » Cod sursa (job #254284) | Cod sursa (job #580365) | Cod sursa (job #2739687) | Cod sursa (job #2637921) | Cod sursa (job #3166686)
#include <bits/stdc++.h>
#include <cmath>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int n,s[6000010];
int main()
{
f>>n;
for(int i=1;i<=n;i++)
f>>s[i];
///subscv de suma maxima= suma partiala pana la i - subscv cu suma minima
int best=-2000000009,mn=0,index,st,dr;
for(int i=1;i<=n;i++)
{
s[i]=s[i]+s[i-1];///sume partiale
if(best < s[i]-mn)/// gasesc o suma mai buna
{
best=s[i]-mn;
st=index+1;
dr=i;
}
if(mn > s[i])/// de unde incep numaratoarea cu minimul sumei sirului
{
mn=s[i], index=i;///index = poz de unde incepe secvmin
}
}
g<<best<<' '<<st<<' '<<dr<<'\n';
}