Cod sursa(job #3250696)

Utilizator BiancaPatrulescuBianca Patrulescu BiancaPatrulescu Data 23 octombrie 2024 10:00:32
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 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;
     
 
 
 
  
  
}