Cod sursa(job #1008798)

Utilizator sebinechitasebi nechita sebinechita Data 11 octombrie 2013 20:55:21
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
#include <climits>
#include <algorithm>
#include <cmath>
#include <queue>
#include <deque>
#include <iomanip>
#include <stack>
#include <cstdio>

using namespace std;

ifstream fin("deque.in");
ofstream fout("deque.out");
#define baza 10

#define MAX 5000100
typedef long long int lli;

deque <pair <int, int> > coada;










int main()
{

    int n,k, sum=0, i, s;
    fin>>n>>k;



    for(i=1;i<=n;i++)
    {
        fin>>s;
        if(!coada.empty())
        {
            while(coada.back().first>=s)
            {
                coada.pop_back();
            }
        }

        coada.push_back(make_pair(s,i));

        if(coada.front().second<=i-k)
        {
            coada.pop_front();
        }
        if(i>=k)
        {
           // cout<<coada.front().first<<" ";
            sum+=coada.front().first;
        }
    }
    fout<<sum;



    return 0;
}