Cod sursa(job #872570)
Utilizator | Arnold Beiland BeilandArnold | Data | 6 februarie 2013 11:55:09 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <fstream>
#include <vector>
int main(){
std::ifstream fin("ssm.in");
std::ofstream fout("ssm.out");
unsigned N; fin>>N;
std::vector<int> Sir(N);
for(unsigned i=0;i<N;++i) fin>>Sir[i];
unsigned beg=0, end=0, sind=0;
int bestsum=Sir[0], best=Sir[0];
for(unsigned i=1; i<N; ++i){
if(best+Sir[i]>=Sir[i]) best = best+Sir[i];
else{ best=Sir[i]; sind=i; }
if(best>bestsum){
bestsum=best;
beg=sind; end=i;
}
}
fout<<bestsum<<' '<<beg+1<<' '<<end+1<<'\n';
}