Cod sursa(job #1640236)
Utilizator | Cecilia Mariciuc ceciliamariciuc | Data | 8 martie 2016 16:35:46 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int a[6000001],n;
int main()
{int s,smax,pr=1,p,u,i;
fin>>n;
for(i=1;i<=n;i++) fin>>a[i];
s=a[1];
smax=s; p=u=1;
for(i=2;i<=n;i++)
{if(s+a[i]>a[i])
s=s+a[i];
else {s=a[i];pr=i;}
if(s>smax) {smax=s;
p=pr;u=i;
}
if(s==smax&&i-pr+1<u-p+1)
{p=pr;u=i;}
/*if(s>smax) {smax=s;p=pr;ul=i;}
else {s=a[i];pr=i;
}*/
}
fout<<smax<<" "<<p<<" "<<u<<"\n";
fin.close();
fout.close();
return 0;
}