Cod sursa(job #2328049)

Utilizator Codrin2004Codrin George Nichifor Codrin2004 Data 25 ianuarie 2019 12:43:28
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <deque>

using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
struct tip{int val; int poz;};
deque <tip> mi;
tip x;
int k,n,i;
long long sum;
int main()
{
    fin>>n>>k;
    fin>>x.val;
    x.poz=1;
    mi.push_back(x);
    if(k==1)
        sum+=x.val;
    for(i=2;i<=n;i++)
    {
        fin>>x.val;
        x.poz=i;
        while(!mi.empty() && mi.back().val>x.val)
            mi.pop_back();
        mi.push_back(x);
        while(!mi.empty() && i-mi.front().poz+1>k)
            mi.pop_front();
        if(i>=k)
            sum+=mi.front().val;
    }
    fout<<sum;
    return 0;
}