Pagini recente » Cod sursa (job #1409495) | Cod sursa (job #772273) | Statistici Dragos Albert (zaniszen) | Cod sursa (job #2846668) | Cod sursa (job #1694284)
#include <fstream>
#define INFINIT -2000000000
#define DIMMAX 6000000
using namespace std;
long int v[DIMMAX+2],s[DIMMAX+2];
int main()
{ long int sum,i,n,poz,pfin,lunmax;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
sum=INFINIT;
fin>>n;
for (i=1;i<=n;++i) {
fin>>v[i];
if (i==1) {
s[i]=v[i];
poz=i;
}
else if (i==2) {
s[i]=s[i-1]+v[i];
if (s[i]>sum) {
sum=s[i];
lunmax=i;
pfin=i;
}
}
else if (i>2) {
s[i]=max(s[i-1]+v[i],v[i-1]+v[i]);
if (v[i-1]+v[i]==s[i] && s[i-1]+v[i]<s[i]) poz=i-1;
if (s[i]>sum) {
sum=s[i];
lunmax=i-poz+1;
pfin=i;
}
else if (sum==s[i] && i-poz+1>lunmax) {
lunmax=i-poz+1;
pfin=i;
}
}
}
fout<<sum<<" "<<poz<<" "<<pfin<<"\n";
return 0;
}