Cod sursa(job #923285)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 23 martie 2013 13:13:38
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>
#include <deque>

using namespace std;

deque<int> v;

int vec[5000005];
    
int main()
{
    ifstream fin("deque.in");
    ofstream fout("deque.out");
    
    int n,k;
    int i;
    
    fin>>n>>k;
    
    for(i=0;i<k;i++)
    {
       fin>>vec[i];
     
         if(!v.empty())
          while(vec[v.back()]>vec[i])
            v.pop_back();
          v.push_back(i);
         
                                    
    }
    int sum=0;
    
    for(;i<n;i++)
    {         
        sum+=vec[v.front()];
        
        while(i-k>=v.front())
          v.pop_front();
        fin>>vec[i];
        
        if(!v.empty())
          while(vec[v.back()]>vec[i])
            v.pop_back();
          v.push_back(i);     
        
    }
    
    sum+=vec[v.front()];
    
    fout<<sum<<'\n';
    
    fin.close();
    fout.close();
    //system("PAUSE");
    return 0;
}