Pagini recente » Cod sursa (job #1082168) | Cod sursa (job #2774877) | Cod sursa (job #2158251) | Cod sursa (job #2686809) | Cod sursa (job #876997)
Cod sursa(job #876997)
#include <fstream>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n,i,p,u,maxim,pmax,umax;
int v[6000000] , d[6000000];
int main () {
fin >> n;
for (i=1;i<=n;i++)
fin>>v[i];
d[1]=v[1];
maxim=d[1];
pmax=1;umax=1;
p=1;u=1;
for (i=2;i<=n;i++) {
if (v[i]+d[i-1]>v[i]) {
d[i]=v[i]+d[i-1];
u=i;
}else{
if (v[i]+d[i-1]<v[i]) {
d[i]=v[i];
p=i;
u=i;
}else
if (v[i]<v[p]){
d[i]=v[i]+d[i-1];
u=i;
}else {
d[i]=v[i];
p=i;
u=i;
}
}
if (d[i]>maxim) {
maxim=d[i];
pmax=p;
umax=u;
}
if (d[i]==maxim&&v[pmax]>v[p]) {
pmax=p;
umax=u;
}if (d[i]==maxim && v[pmax]==v[p])
if ((umax-pmax)>(u-p)) {
pmax=p;
umax=u;
}
}
fout <<maxim<<" "<<pmax<<" "<<umax;
return 0;
}