Cod sursa(job #2044241)

Utilizator alisavaAlin Sava alisava Data 21 octombrie 2017 08:44:53
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("deque.in");
ofstream fout("deque.out");

deque<int>q;
queue<int>c;

void Push(int x)
{
    c.push(x);
    while(!q.empty()&&q.back()>x)
        q.pop_back();
    q.push_back(x);
}
void Pop()
{
    int x=c.front();
    if(x==q.front()) q.pop_front();
    c.pop();
}
int main()
{
    int n,k,x,s=0,i;
    fin>>n>>k;
    for(i=1;i<=k;i++)
    {
        fin>>x;
        Push(x);
    }
    for(i=i;i<=n;i++)
    {
        fin>>x;
        s+=q.front();
        Push(x);
        Pop();
    }
    s+=q.front();
    fout<<s<<"\n";


    return 0;
}