Cod sursa(job #2237894)
Utilizator | blaugranadevil lucian2015 | Data | 3 septembrie 2018 20:15:49 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <fstream>
#define nmax 6000001
using namespace std;
int a[nmax], best[nmax], n, tend, beg, s;
ifstream f("ssm.in");
ofstream g("ssm.out");
int main()
{
int i, bestsum;
f>>n;
for(i = 1; i <= n; i++)
f>>a[i];
bestsum=a[1];
for(i = 1; i <= n; i++)
{
best[i]=max(a[i],best[i-1]+a[i]);
if(bestsum<best[i])
{ bestsum=best[i];
tend=i;}
}
i=tend;
while(s!=bestsum){
s+=a[i];
i--;
}
beg=i+1;
g<<bestsum<<' '<<beg<<' '<<tend;
}