Cod sursa(job #1958492)
| Utilizator | Data | 8 aprilie 2017 13:59:33 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.65 kb |
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n;
int x, pi = 1, pf, inc = 1;
long long int s, smax;
int main()
{
int i;
fin>>n;
for(i=1; i<=n; i++)
{
fin>>x;
s += x;
if(s > smax)
{
smax = s;
pf = i;
pi = inc;
}
else if(s == smax && pf - pi > i - inc)
{
smax = s;
pf = i;
pi = inc;
}
else if(s < 0)
{
s = 0;
inc = i + 1;
}
}
fout<<smax<<' '<<pi<<' '<<pf;
return 0;
}
