Cod sursa(job #1773074)
| Utilizator | Data | 7 octombrie 2016 15:14:29 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include <fstream>
#include <iostream>
using namespace std;
int v1[6000010],v2[6000010],a,b,a2;
int main()
{
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n,mare=0;
fin>>n;
for (int i=1;i<=n;++i)
{
fin>>v1[i];
v2[i]=v2[i-1];
if (v2[i]+v1[i]<0)
{
a=i+1;
v2[i]=0;
}
else
{
v2[i]+=v1[i];
}
if (mare<v2[i])
{
b=i;
mare=v2[i];
//cout<<v2[i]<<"\n";
a2=a;
}
}
fout<<mare;
fout<<" "<<a2<<" "<<b;
}
