Cod sursa(job #3250697)

Utilizator c0drinn_Rau Codrin c0drinn_ Data 23 octombrie 2024 10:02:34
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
 #include <fstream>

using namespace std;
 ifstream in("deque.in");
   ofstream out("deque.out");
 int v[5000001], d[5000001];

 int main(){
   int n,k; in>>n>>k;
   for(int i=1;i<=n;i++){
     in>>v[i];
   }
   long long s=0;


     int p,u;
     d[1]=1; p=u=1;
     if(k==1)s=s+v[1];

     for(int i =2; i <=n; i++){
       //  d[p]........d[u] ( d[u]==i-1    )
       //  d[p]....d[u] apartin  de la i-k ......i-1
       //  v[ d[p]] minimul
       // apare v[i]
        if(d[p] <= i-k) p++;

       while(u>=p && v[d[u]]>=v[i])  u--;

       u++;
       d[u]=i;
       if(i>=k)s=s+v[d[p]];

     }

   out<<s;
     return 0;






}