Pagini recente » Cod sursa (job #1838201) | Cod sursa (job #2048157) | Cod sursa (job #712443) | Cod sursa (job #3199487) | Cod sursa (job #1174618)
#include <fstream>
#include <deque>
using namespace std;
deque<int> deck;
int vec[5000005],n,k,i;
long long int suma;
ifstream f("deque.in");
ofstream g("deque.out");
int main()
{f>>n>>k;
for (i=1;i<=n;i++)
f>>vec[i];
for (i=1;i<=n;i++)
{ while(!deck.empty())
if(deck.front()+k-1<i)
deck.pop_front();
else
break;
while(!deck.empty())
if (vec[deck.back()]>=vec[i])
deck.pop_back();
else
break;
deck.push_back(i);
if (i>=k)
suma+=vec[deck.front()];
}
g<<suma<<'\n';
f.close();
g.close();
return 0;
}