Cod sursa(job #1415210)
| Utilizator | Data | 3 aprilie 2015 23:07:35 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include <fstream>
#define NM 6000005
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
long long n,v,i,dp[NM],be,en,poz,mx;
int main()
{
fin >> n;
mx=-1600000000;
for (i=1; i<=n; i++)
{
fin >> v;
if (v+dp[i-1]<v)
poz=i;
else
{
dp[i]=dp[i-1]+v;
if (dp[i]>mx)
{
be=poz;
en=i;
mx=dp[i];
}
}
dp[i]=max(v, v+dp[i-1]);
}
fout << mx << " " << be << " " << en;
fin.close();
fout.close();
return 0;
}
