Pagini recente » Cod sursa (job #1676655) | Cod sursa (job #333286) | Cod sursa (job #2964723) | Cod sursa (job #2211763) | Cod sursa (job #2454221)
#include <iostream>
#include <fstream>
#include <string.h>
#include <cstring>
#include <fstream>
using namespace std;
int n,c,b[6000009],maxim[6000009],inceput[6000009],sfarsit[6000009],max1,c1,c2;
void suma_maxima(){
for (c=2;c<=n;c++){
if (maxim[c-1]+b[c]>=b[c]){
maxim[c]=maxim[c-1]+b[c];
inceput[c]=inceput[c-1];
sfarsit[c]=c;
} else
if (maxim[c-1]+b[c]<b[c]){
maxim[c]=b[c];
inceput[c]=c;
sfarsit[c]=c;
}
if (maxim[c]>max1){
max1=maxim[c];
c1=inceput[c];
c2=sfarsit[c];
}
}
}
int main(){
ifstream f("ssm.in");
f >> n;
for (c=1;c<=n;c++)
f >> b[c];
f.close();
suma_maxima();
ofstream g("ssm.out");
g << max1 << ' ' << c1 << ' ' << c2;
g.close();
return 0;
}