Pagini recente » Cod sursa (job #1635042) | Cod sursa (job #2347661) | Istoria paginii utilizator/murariulivia | Cod sursa (job #1151964) | Cod sursa (job #2717282)
// 80 puncte
// probabil gresesc asta:
// Dacă există mai mult subsecvenţe candidate la soluţie,
// atunci se va tipări cea cu indicele de început cel mai mic, iar în caz de egalitate cea mai scurtă.
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream fin("ssm.in");
ofstream fout("ssm.out");
long long n;
fin>>n;
long long x, sumaMax, sumaCurenta, indiceInceput = 1, indiceSfarsit= 1;
fin>>x;
sumaMax = x;
sumaCurenta = x;
for(long long i = 2; i <= n; i++){
fin>>x;
if(sumaCurenta + x > x){
sumaCurenta += x;
}
else{
sumaMax = x;
sumaCurenta = x;
indiceInceput = i;
}
if(sumaCurenta > sumaMax){
sumaMax = sumaCurenta;
indiceSfarsit = i;
}
}
fout<<sumaMax<< " "<<indiceInceput<< " "<<indiceSfarsit;
return 0;
}