Cod sursa(job #2480058)
| Utilizator | Data | 24 octombrie 2019 20:34:52 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <fstream>
using namespace std;
int x, i, n, val, imin, st, dr, val_max, minim;
int S[2000001];
int main ()
{
ifstream fin ("ssm.in ");
ofstream fout ("ssm.out");
fin>>n;
imin=0;
minim=2000000000;
for (i=1; i<=n; i++)
{
fin>>x;
S[i]=S[i-1]+x;
val=S[i]-S[imin];
if (val>val_max)
{
st=imin+1;
dr=i;
val_max=val;
}
if (S[i]<minim)
{
minim=S[i];
imin=i;
}
}
fout<<val_max<<" "<<st<<" "<<dr;
}
