Cod sursa(job #2889448)

Utilizator biancar28Radulescu Alexia-Bianca biancar28 Data 12 aprilie 2022 19:42:41
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.08 kb
//#include <iostream>
//#include <fstream>
//using namespace std;
//
//ifstream f("deque.in");
//ofstream g("deque.out");
//int n,d[5000002],v[5000002],k,i=1,j,fr,m,mn=10000001,sum;
//
//int main() {
//    f >> n >> k;
//    while(i<=n)
//    {
//        f>>d[m];
//        for(j=fr;j<=m;j++)
//        {
//            if (d[j] < mn)
//            {
//                mn = d[j];
//            }
//        }
//        m++;
//        if(i>=k)
//        {
//            sum+=mn;
//            fr++;
//            mn=d[fr];
//        }
//        i++;
//    }
//    g<<sum;
//
//    return 0;
//}
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("deque.in");
ofstream g("deque.out");
long long n,d[5000002],v[5000002],k,fr=0,bk=-1,i,sum;

int main() {
    f >> n >> k;
    while(i<n)
    {
        f>>v[i];
        while(fr<=bk && v[d[bk]]>v[i]){
            bk--;
        }
        bk++;
        d[bk]=i;
        if(d[fr]==i-k){
            fr++;
        }
        if(i>=k-1){
            sum+=v[d[fr]];
        }
        i++;
    }
    g<<sum;

    f.close();
    g.close();

    return 0;
}