Cod sursa(job #1806173)
| Utilizator | Data | 14 noiembrie 2016 21:41:26 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <fstream>
using namespace std;
int N,S[700005],i,Sum=0;
ifstream f("ssm.in");
ofstream g("ssm.out");
#define FOR(i, a, b) for (int i = (a); i <= (b); ++ i)
#define Max(a, b) ((a) > (b) ? (a) : (b))
int main()
{
f>>N;
for(i=1;i<=N;i++)
f>>S[i];
int bestSum=-int(2e9),beg,enD,idx;
for(i=1;i<=N;i++)
{
if(Sum<0)
{
Sum=S[i]; idx=i;
}
else Sum+=S[i];
if(bestSum<Sum)
{
bestSum=Sum;
beg=idx;
enD=i;
}
}
g<<bestSum<<" "<<beg<<" "<<enD;
f.close();
g.close();
return 0;
}
