Cod sursa(job #2550412)
| Utilizator | Data | 18 februarie 2020 19:45:20 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include <iostream>
#include <fstream>
using namespace std;
int n,i,x,q,mx,st,fi,start, stop,a[6000100];
ifstream in("ssm.in");
ofstream out("ssm.out");
int main()
{
in>>n;
for (i=1;i<=n;i++)
{
in>>x;a[i]=x;
q=max(a[i],a[i]+q);
if (q>mx) {mx=q;stop=i;}
}
out<<mx<<" ";i=stop;
if (mx<0) while (mx<0) {mx-=a[i];i--;}
else while (mx>0) {mx-=a[i];i--;}
while (a[i]==0) i--;
out<<i+1<<" "<<stop;
}
