Cod sursa(job #1379843)
| Utilizator | Data | 6 martie 2015 19:49:17 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include <fstream>
#include <limits.h>
#define MAX 6000001
using namespace std;
ifstream cin("ssm.in");
ofstream cout("ssm.out");
int a[MAX], n, p, primul, ultim, smax=INT_MIN, Minim;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
{
a[i]+=a[i-1];
if(a[i]-Minim>smax) smax=a[i]-Minim, primul=p+1, ultim=i;
if(a[i]<Minim) Minim=a[i], p=i;
}
cout<<smax<<' '<<primul<<' '<<ultim;
return 0;
}
