Cod sursa(job #1426279)
| Utilizator | Data | 29 aprilie 2015 12:46:05 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include<fstream>
#define NMAX 6000005
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
long s[NMAX];
int n,i;
long long start, sum, msum, mstart, mend;
int main()
{
fin>>n;
for(i=1; i<=n; ++i)
fin>>s[i];
for(i=1; i<=n; ++i)
{
if(sum+s[i]>s[i])
{
sum+=s[i];
}
else
{
if(s[i]!=0){
sum=s[i];
start=i;
}
}
if(sum>msum)
{
mend=i;
mstart=start;
msum=sum;
}
}
fout<<msum<<" "<<mstart<<" "<<mend;
return 0;
}
