Cod sursa(job #3198499)
Utilizator | Gheorghica Istrate David vlad231 | Data | 29 ianuarie 2024 17:54:04 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 10 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
vector<int> v;
int n,x,S[7000011],poz,pozs;
int main() {
fin>>n;
for(int i=0;i<n;i++){
fin>>x;
v.push_back(x);
}
S[0]=v[0];
for(int i=1;i<n;i++){
if(S[i-1]+v[i]>=v[i])
S[i]+=S[i-1]+v[i];
else{
S[i]=v[i];
pozs=i;
}
}
int max=INT_MIN;
for(int i=0;i<n;i++) {
if (max < S[i])
max = S[i];
poz = i;
}
fout<<max<<" ";
fout<<pozs+1<<" "<<poz+1;
return 0;
}