Mai intai trebuie sa te autentifici.
Cod sursa(job #901396)
| Utilizator | Data | 1 martie 2013 10:02:09 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
#define Nmax 6000001
int a[Nmax],n,bestsum,best[Nmax],sum[Nmax];
int main()
{
int i,min,j,inceput,sfarsit;
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
for(i=1;i<=n;i++)
sum[i]=a[i]+sum[i-1];
min=sum[0];
bestsum=-100000;
for(i=1;i<=n;i++)
{
best[i]=sum[i]-min;
if(min>sum[i])
{min=sum[i];
j=i+1;}
if(bestsum<best[i])
{bestsum=best[i];
inceput=j;
sfarsit=i;}
}
g<<bestsum<<' '<<inceput<<' '<<sfarsit;
}
