Pagini recente » Cod sursa (job #934934) | Cod sursa (job #2599683) | Cod sursa (job #873643) | Cod sursa (job #919685) | Cod sursa (job #2897801)
/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <iostream>
#include <deque>
#include <vector>
#include <fstream>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int main()
{
int n, k;
vector<int> a;//{-7, 9, 2, 4, -1, 5, 6, 7, 1};
deque<int> d;
in >> n >> k;
/*
Complexitate:
A. *O(n*k)*
B. **O(n)**, complexitate amortizata
C. O(k)
D. *O(n log k)*
*/
int numOps = 0;
int result = 0;
for (int i = 0; i < n; ++i) {
int x;
in >> x;
a.push_back(x);
while (d.size() > 0 && a[i] <= a[ d.back() ]) {
d.pop_back();
++numOps;
}
d.push_back(i);
if (d.front() == i - k) {
d.pop_front();
}
if (i + 1 >= k) {
result += a[ d.front() ];
}
}
out << result;
return 0;
}