Pagini recente » Atasamentele paginii Profil Kmcode | Cod sursa (job #3361564)
#include <iostream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
long long v[6000001];
int main()
{
int n, i, primul, ultimul, indiceSt;
long long sum, mx;
fin >> n;
for(i = 1; i <= n; i++)
fin >> v[i];
sum = v[1];
mx = v[1];
indiceSt = 1;
primul = 1;
ultimul = 1;
for(i = 2; i <= n; i++){
if(v[i] > sum + v[i]){
sum = v[i];
indiceSt = i;
}
else{
sum = sum + v[i];
}
if(sum > mx){
mx = sum;
primul = indiceSt;
ultimul = i;
}
else if(sum == mx){
if(indiceSt < primul){
primul = indiceSt;
ultimul = i;
}
else if(indiceSt == primul && i - indiceSt < ultimul - primul){
ultimul = i;
}
}
}
fout << mx << " " << primul << " " << ultimul << "\n";
return 0;
}