Cod sursa(job #2152846)
| Utilizator | Data | 5 martie 2018 20:32:43 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <iostream>
#include <fstream>
#include <algorithm>
#include <climits>
using namespace std;
int n,i,a[7000005];
int main()
{
ifstream fin("ssm.in");
fin>>n;
for(i=1;i<=n;i++)
fin>>a[i];
int bestSum =INT_MIN ,min = 0, idx, beg, end;
for(i=1;i<=n;i++){
a[i]+=a[i-1];
if(bestSum< a[i]- min)
bestSum= a[i]-min , beg=idx+1 , end = i;
if(min>a[i])
min=a[i] ,idx=i;
}ofstream fout("ssm.out");
fout<<bestSum<<" "<<beg<<" "<<end;
fin.close(), fout.close();
return 0;
}
