Cod sursa(job #1923117)
| Utilizator | Data | 10 martie 2017 20:48:08 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,A[6000010],st=1,dr=1,stt=1,drr=1;
int main(){
ifstream cin ("ssm.in");
ofstream cout ("ssm.out");
cin>>n;
ll p=-(1LL<<40), s=0;
for (int i=1; i<=n; i++) cin>>A[i];
for (int i=1; i<=n; i++){
if (s+A[i]>A[i]) s+=A[i],drr=i;
else stt=i,drr=i,s=A[i];
if (s>p) dr=drr,st=stt;
p=max(p,s);
}
cout<<p<<" "<<st<<" "<<dr;
return 0;
}
