Cod sursa(job #1064760)

Utilizator NCodeMihai X NCode Data 22 decembrie 2013 12:45:39
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#define maxn 5000008
using namespace std;
 
int sir[maxn], deck[maxn];
long long suma;
  
int main()
{
 
    ifstream in("deque.in ");
  ofstream  out("deque.out");
     
    int n,k;
    in>>n>>k;
 
     
    for (int i = 1; i <= n; i++) in>>sir[i];
        
  
    int head=1;
    int tail=0;
  
    for (int i = 1; i <= n; i++)
    {
         
         
        while ( head <= tail && sir[i] <= sir[ deck[tail] ] )
            tail--;   
         
        deck[++tail] = i;
         
        if (deck[head] == i-k)
            head++;
         
        if (i >= k)
            suma += sir[ deck[head] ];   
    }
  
 
     out<<suma<<"\n";
     
     in.close();
    out.close();
    return 0;
}