Cod sursa(job #2689467)
| Utilizator | Data | 20 decembrie 2020 23:36:42 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 95 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin( "ssm.in" );
ofstream fout( "ssm.out" );
static inline long long max(long long a, long long b){
return a < b ? b : a;
}
int main() {
long long n, st, stsol, drsol, i, x, sum, maxx;
fin >> n;
sum = maxx = 0;
for( i = 0; i < n; ++i ){
fin >> x;
sum += x;
if( sum < 0 ){
st = i + 1;
sum = 0;
}
if( maxx < sum ){
maxx = sum;
stsol = st + 1;
drsol = i + 1;
}
maxx = max(maxx, sum);
}
fout << maxx << " " << stsol << " " << drsol;
return 0;
}
