Cod sursa(job #921905)

Utilizator alexandrul_21Niculescu Mihai alexandrul_21 Data 21 martie 2013 20:24:48
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <stdio.h>
#include <fstream>
using namespace std;
#define MAX_N 5000000
int V[MAX_N+5],List[MAX_N+5];
int N,K;
void write(int nr,int s,int f)
{
    printf("%d -> ",nr);
    for(int i=s;i<=f;i++)
    {
        printf("%d ",List[i]);
    }
    printf("\n");
}
int main()
{
    ifstream fin("deque.in");
    fin>>N>>K;
    int i,first=1,last=0;
    long long s=0;
    for(i=1;i<=N;i++)
    {
        fin>>V[i];
        while(first<=last&&V[i]<V[List[last]])
            last--;
        last++;
        List[last]=i;
        if(List[first]==i-K)
            first++;
        if(i>=K)
            s+=V[List[first]];
    }
    fin.close();
    ofstream fout("deque.out");
    fout<<s<<'\n';
    fout.close();
    return 0;
}