Pagini recente » Cod sursa (job #1172577) | Cod sursa (job #737803) | Cod sursa (job #1927361) | Cod sursa (job #2566584) | Cod sursa (job #1411382)
#include <fstream>
#include <deque>
using namespace std;
struct element{
long ind;
long nr;
};
deque <element> dq;
element temp;
long long suma;
int main()
{
ifstream in("deque.in");
ofstream out("deque.out");
long n, k, x;
in>>n>>k;
for(long i=1; i<=n; ++i){
in>>x;
if(!dq.empty())
temp=dq.back();
while(temp.nr>x&&!dq.empty()){
dq.pop_back();
if(!dq.empty())
temp=dq.back();
}
temp.nr=x; temp.ind=i;
dq.push_back(temp);
temp=dq.front();
if(temp.ind==i-k){
dq.pop_front();
temp=dq.front();
}
if(i>=k)
suma+=(long long)temp.nr;
}
out<<suma<<"\n";
in.close();
out.close();
return 0;
}