Cod sursa(job #1257724)

Utilizator pintilie.andreiPintilie pintilie.andrei Data 8 noiembrie 2014 09:50:49
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
//se citeste un n apoi n valori
//sa se gaseasca ai,aj cu i<j si ai+aj<==z
//2<i,j<1.000.000

#include <fstream>
#include <deque>

using namespace std;

ifstream fin("deque.in");
ofstream fout("deque.out");

int n,k;
int minim1,minim2,unde1,unde2;

deque <int> v;
int a[5000005];
long long S;

int main()
{
    int i;
    fin >> n >> k;
    for(i=1;i<=n;i++) fin >> a[i];
    for(i=1;i<=n;i++)
    {
        if(!v.empty() && v.front()==i-k)
            v.pop_front();
        while(!v.empty() && a[v.back()]>a[i])
            v.pop_back();
        v.push_back(i);
        if(i>=k) S+=a[v.front()];
    }
    fout << S << '\n';
    return 0;
}