Pagini recente » Cod sursa (job #2074627) | Cod sursa (job #3129093) | Cod sursa (job #105396) | Cod sursa (job #1153451) | Cod sursa (job #2862030)
#include <fstream>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int v[50001];
int main()
{
int n, k, minim, pozmin, pozinc, pozfin, sumamax = -1e9;
int x;
fin >> n >> k;
for(int i = 1; i <= n; ++i)
{
fin >> x;
v[i] = v[i - 1] + x;/// calculam sirul de sume partiale
}
minim = 0;
pozmin = 0;
for(int i = 1; i <= n; ++i)
{
if(v[i] - minim > sumamax && i - pozmin >= k)///secventa are cel putin lungimea k
{
sumamax = v[i] - minim;
pozinc = pozmin + 1;
pozfin = i;
}
if(i >= k && v[i] - v[i - k] > sumamax)///diferente pe sume partiale
{
sumamax = v[i] - v[i - k];
pozinc = i - k + 1;
pozfin = i;
}
if(v[i] < minim)
{
minim = v[i];
pozmin = i;
}
}
fout << pozinc << ' ' << pozfin << ' ' << sumamax << '\n';
return 0;
}