Cod sursa(job #1437651)
| Utilizator | Data | 18 mai 2015 09:45:03 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
using namespace std;
int s[6000000], limL, limR, n;
int main()
{
ifstream f("ssm.in");
ofstream g("ssm.out");
f>>n;
for (int i=1; i<=n; i++)
{
f>>s[i];
s[i] += s[i-1];
}
int mn=0;
int bestSum=-int(2e9);
int kMin=0;
for (int i=1; i<=n; i++)
{
if (s[i]-mn>bestSum)
{
bestSum= s[i]-mn;
limL=kMin+1;
limR=i;
}
if (s[i]<mn)
{
mn=s[i];
kMin=i;
}
}
g<<bestSum<<" "<<limL<<" "<<limR;
return 0;
}
