Cod sursa(job #2613054)
| Utilizator | Data | 9 mai 2020 14:32:08 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream r("ssm.in");
ofstream w("ssm.out");
struct secv{
int val, ind;
}d[6000001];
int main()
{
int n;
r>>n;
secv maxim;
maxim.val=-1000000000;
for(int i=1;i<=n;i++){
int x;
r>>x;
if(x>d[i-1].val+x){
d[i].val=x;
d[i].ind=i;
}
else{
d[i].val=d[i-1].val+x;
d[i].ind=d[i-1].ind;
}
if(d[i].val>maxim.val){
maxim.val=d[i].val;
maxim.ind=i;
}
}
w<<maxim.val<<" "<<d[maxim.ind].ind<<" "<<maxim.ind;
return 0;
}
