Pagini recente » Borderou de evaluare (job #2019934) | Cod sursa (job #3199228) | Cod sursa (job #980049) | Cod sursa (job #751713) | Cod sursa (job #902774)
Cod sursa(job #902774)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int a[50005], n;
int incep, termin, poz;
int Secvmax(int i, int j){
int maxim, suma, ip;
maxim = a[i];
if(a[i] > 0) suma = a[i];
else suma = 0;
i++;
while(i<=j){
suma += a[i];
if(maxim < suma) maxim = suma, termin = i, incep = ip;
if(suma < 0) suma = 0, ip = i+1;
i++;
}
return maxim;
}
int main()
{
int r;
fin>>n;
for(int i=1; i<=n ;i++)
fin>>a[i];
r = Secvmax(1, n);
fout<<r;
if(r >= 0)
fout<<" "<<incep<<" "<<termin;
else fout<<" "<<termin<<" "<<termin;
return 0;
}