Pagini recente » Cod sursa (job #619330) | Cod sursa (job #1894633) | Cod sursa (job #2364483) | Cod sursa (job #1676934) | Cod sursa (job #3031931)
#include <fstream>
#include <queue>
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
int n, k, v[5000001], s;
deque <int> dq; //aici punem doar pozitiile din vector
int main(){
int i, minim;
fin >> n >> k;
for (i = 1; i<= n; i++)
fin >> v[i];
for(i = 1; i<= n; i++)
//adaugam nou element
{
while(v[dq.front()] > v[i] && dq.empty()!=1)
{
dq.pop_front();
dq.push_front(i)
}
if(i > k)
{
if (dq.begin() < i-k+1) //nu este in ultimele k elemente
dq.pop_back();
minim = v[dq.begin()];
s += minim;
}
}
fout<<s;
return 0;
}