Cod sursa(job #2078883)

Utilizator alexsandulescuSandulescu Alexandru alexsandulescu Data 30 noiembrie 2017 10:55:13
Problema Deque Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("deque.in");
ofstream g("deque.out");

int N, K, a[5000003];
long long sum;
deque<int> q;
void afis(deque<int> q, int SUM) {
    int n;
    for (n = 0; n < 10; n++)
        cout<< "\n\n\n\n\n\n\n\n\n\n";
    deque<int> st(q);
    while(!st.empty())
        cout << a[st.front()] << " ", st.pop_front();
    cout << "\n\nSUM=" << sum;

}
int main()
{
    f >> N >> K;
    for(int i = 1; i < K; i++)
        f >> a[i], q.push_back(i);
    for(int i = K; i <= N; i++) {
        f >> a[i];
        while(!q.empty() && a[q.back()] > a[i])
            q.pop_back();//, afis(q, sum);
        q.push_back(i);//, afis(q, sum);
        if(q.front() <= i - K)
            q.pop_front();
        //afis(q, sum);
        sum += a[q.front()];
        //afis(q, sum);
    }
    g << sum << "\n";
    return 0;
}