Pagini recente » Cod sursa (job #2305956) | Cod sursa (job #2543043) | Cod sursa (job #1374648) | Cod sursa (job #131069) | Cod sursa (job #1251385)
#include <fstream>
using namespace std;
int secv[50001], n, k, PozCr, Inceput, Sfarsit, SecvCr, Maxim, Lungime, i;
int main()
{
ifstream f("secv2.in");
ofstream g("secv2.out");
f>>n>>k;
for (i=1; i<=n; i++)
f>>secv[i];
Maxim = secv[1];
SecvCr = secv[1];
PozCr = 1;
Inceput = 1;
Sfarsit = 1;
// Cauta intervalul subsecventei
for (i=2; i<=n; i++)
{
if (SecvCr >= 0)
SecvCr += secv[i];
else
{
PozCr = i;
SecvCr = secv[i];
}
if (SecvCr >= Maxim)
{
Inceput = PozCr;
Sfarsit = i;
Maxim = SecvCr;
}
}
// Calculeaza lungimea subsecventei
Lungime = Sfarsit - Inceput + 1;
if (Lungime >= k)
g<<Inceput<<" "<<Sfarsit<<" "<<Maxim;
else
g<<0<<" "<<0<<" "<<0;
return 0;
}