Pagini recente » Cod sursa (job #1439897) | Cod sursa (job #1237751) | Concursuri organizate de infoarena | Cod sursa (job #1282104) | Cod sursa (job #2362212)
#include <fstream>
using namespace std;
ifstream f("secv2.in");
ofstream g("secv2.out");
int n, k, s[50100], Deque[50000], st, dr, sol = -200000000, p1, p2;
int main()
{
f >> n >> k;
for(int i=1; i<=n; i++)
{
int x;
f >> x;
s[i] = s[i-1] + x;
}
st = 1;
dr = 0;
for(int i=1; i<=n; i++)
{
while(st <= dr && s[i-k] <= s[Deque[dr]]) dr--;
Deque[++dr] = i - k;
if(i >= k)
if(s[i] - s[Deque[st]] > sol)
{
sol = s[i] - s[Deque[st]];
p1 = Deque[st] + 1;
p2 = i;
}
}
g << p1 << ' ' << p2 << ' ' << sol << '\n';
return 0;
}