Cod sursa(job #3197136)

Utilizator Silviu643Dumitrescu Silviu Florian Silviu643 Data 25 ianuarie 2024 19:18:26
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
deque <int> q;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,k,a[5000001],mn,s;
int main()
{
    fin>>n>>k;
    a[0]=10000001;
    for(int i=1;i<=k;i++)
        {fin>>a[i];
        if(a[i]<=a[mn]) mn=i,a[mn]=a[i];
        }

    q.push_front(mn);
    for(int i=mn+1;i<=k;i++)
        {while(!q.empty() && a[i]<=a[q.front()])
            q.pop_front();
        q.push_front(i);
        }
    cout<<a[q.back()]<<" ";
    s+=a[q.back()];
    for(int i=k+1;i<=n;i++)
    {
        fin>>a[i];
        while(!q.empty() && a[i]<=a[q.front()])
            q.pop_front();
        q.push_front(i);
        if(!q.empty() && i-q.back()>k-1)
            q.pop_back();
        s+=a[q.back()],cout<<a[q.back()]<<" ";
    }
    fout<<s;
    return 0;
}