Cod sursa(job #657919)

Utilizator slycerdan dragomir slycer Data 7 ianuarie 2012 16:54:37
Problema Deque Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
/* 
 * File:   deque.in
 * Author: slycer
 *
 * Created on January 7, 2012, 4:17 PM
 */

#include <cstdlib>
#include <fstream>
#include <iostream>
#include <vector>
#include <list>

using namespace std;

/*
 * 
 */
int main(int argc, char** argv) {

    ifstream input("deque.in");
    ofstream output("deque.out");
    int n,k;
    input >> n >> k; 
    list<int> q; 
    long long sol=0; 
    int * data = new int[n]; 
    for ( int i=0; i<n; i++ ){
        input >> data[i]; 
        if ( i-k>=0 ){
            if ( q.front() == data[i-k] ){
                q.pop_front();
            }
        }
        while ( q.size()>0 && q.back() > data[i] ){
            q.pop_back();
        }
        q.push_back( data[i] ); 
        if( i>=k-1 ) {
              //  cout << q.front() << "\n";
                sol += q.front(); 
        }
    }
    output << sol; 
    return 0;
}