Pagini recente » Cod sursa (job #955364) | Cod sursa (job #3126900) | Cod sursa (job #845229) | Cod sursa (job #3135630) | Cod sursa (job #821249)
Cod sursa(job #821249)
#include <fstream>
#include <deque>
using namespace std;
int v [5000010];
int main()
{
deque <int> scv; //pe prima poz in scv am pozitia minimului, pe pozitia oglindita am minimul
ifstream f("deque.in");
ofstream g("deque.out");
int i, n, k, nrc;
long long rez = 0;
f >> n >> k;
for (i = 1; i <= n; ++ i)
{
f >> v [i];
while ( !scv .empty () && v [scv .back ()] > v [i]) scv .pop_back ();
scv .push_back (i);
if (scv .front () <= i - k) scv .pop_front ();
if (i >= k) rez += v [scv .front()];
}
g << rez << '\n';
}