Cod sursa(job #1588755)
| Utilizator | Data | 3 februarie 2016 16:26:16 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 5 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int v[6000000],s[6000000];
int main()
{
int i,n,j,maxi,maxj,max=-100;
in>>n;
for (i=0; i<n; i++)
in>>v[i];
s[0]=v[0];
for (i=1; i<n; i++)
if (s[i-1]<0)
s[i]=v[i];
else s[i]=s[i-1]+v[i];
for (j=1; j<=n; j++)
if (s[j]>=max)
{
max=s[j];
maxj=j;
for (i=j; i>0; i--)
{
if (s[i]>=0)
maxi=i;
}
}
out<<max<<" "<<maxi+1<< " "<<maxj+1;
return 0;
}
