Pagini recente » Cod sursa (job #970592) | Cod sursa (job #545189) | Cod sursa (job #613825) | Cod sursa (job #1587821) | Cod sursa (job #2240225)
#include <fstream>
#include <limits.h>
using namespace std;
int best[6000001], sum[6000001];
int n, i, x, minim, bestsum, c, d, maxlen=INT_MAX;
int main () {
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
fin>>n;
sum[0]=0;
for (i=1;i<=n;i++) {
fin>>x;
sum[i]=x+sum[i-1];
}
minim=sum[0];
bestsum=INT_MIN;
for (i=1;i<=n;i++) {
best[i]=sum[i]-minim;
if (minim>=sum[i]) {
minim=sum[i];
c=i;
}
if (bestsum<best[i]) {
bestsum=best[i];
d=i;
} else if (best[i]==bestsum)
if (i-c<maxlen) {
d=i;
}
}
fout<<bestsum<<" "<<c+1<<" "<<d;
return 0;
}