Pagini recente » Cod sursa (job #1470130) | Cod sursa (job #1228302) | Cod sursa (job #770087) | Cod sursa (job #38129) | Cod sursa (job #1246343)
#include <fstream>
#define NMAX 6000000
#define cin f
#define cout g
using namespace std;
int numarElemente, tablou[NMAX];
ifstream f("ssm.in");
ofstream g("ssm.out");
void citesteTablou(int &numarElemente, int tablou[])
{
cin>>numarElemente;
for (int i=0; i<numarElemente; ++i) cin>>tablou[i];
}
void subsecventaDeSumaMaxima(int numarElemente, int tablou[])
{
int sumaCurenta=0, startCurenta=0, sumaMaxima=tablou[0], startMaxim=0, finalMaxim=0, i;
for (i=0; i<numarElemente; ++i)
{
sumaCurenta+=tablou[i];
if (sumaCurenta>sumaMaxima)
{
sumaMaxima=sumaCurenta;
startMaxim=startCurenta;
finalMaxim=i;
}
if (sumaCurenta<0)
{
sumaCurenta=0;
startCurenta=i+1;
}
}
cout<<sumaMaxima<<" "<<startMaxim+1<<" "<<finalMaxim+1<<"\n";
}
int main()
{
citesteTablou(numarElemente, tablou);
subsecventaDeSumaMaxima(numarElemente, tablou);
return 0;
}