Pagini recente » Cod sursa (job #2148060) | Cod sursa (job #230278) | Cod sursa (job #2516327) | Cod sursa (job #2453421) | Cod sursa (job #2409545)
#include <iostream>
#include <fstream>
using namespace std;
int indiceStart,v[6000000], indiceFinal, S, maxi, indiceMaxStart, indiceMaxFinal, n;
int ssmax(int v[], int N, int k,int &indiceStart, int &indiceFinal)
{
int s = 0, sMax = 0;
for(int i = 0; i < N - k; i++)
{
s = 0;
for(int j = k; j < i + k; j++)
s += v[j];
if(s > sMax)
{
sMax = s;
indiceStart = k;
indiceFinal = i + k;
}
}
return sMax;
}
int main()
{
ifstream in ("ssm.in");
ofstream out ("ssm.out");
in >> n;
for(int i = 0; i < n; i++)
in >> v[i];
for(int i = 0; i < n; i++)
{
S = ssmax(v, n, i, indiceStart, indiceFinal);
if(S > maxi)
{
maxi = S;
indiceMaxStart = indiceStart;
indiceMaxFinal = indiceFinal;
}
else if(S == maxi)
{
if(indiceFinal - indiceStart + 1 < indiceMaxFinal - indiceMaxStart + 1)
{
maxi = S;
indiceMaxStart = indiceStart;
indiceMaxFinal = indiceFinal;
}
}
}
out << maxi <<" " << indiceMaxStart + 1 << " " << indiceMaxFinal;
return 0;
}