Cod sursa(job #2489930)
Utilizator | Simion Bogdan Dumitru Simi_bogdan | Data | 9 noiembrie 2019 13:25:10 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 80 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in ("ssm.in");
ofstream out("ssm.out");
struct Dp{
int x;
};
#define nmax 6000001
Dp a[nmax];
Dp o[nmax];
int main()
{
int i;
int n;int init=0,fin=0;
int Sol=1;
in>>n;
for(i=1;i<=n;i++)
in>>o[i].x;
for(i=1;i<=n;i++)
{
if(o[i].x<o[i].x+a[i-1].x)
a[i].x=o[i].x+a[i-1].x;
else
a[i].x=o[i].x,init=i;
if(a[i].x>Sol)
Sol=a[i].x,fin=i;
}
out<<Sol<<" "<<init<<" "<<fin;
return 0;
}