Cod sursa(job #1327387)

Utilizator karlaKarla Maria karla Data 26 ianuarie 2015 17:52:52
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>

FILE*f=fopen("deque.in","r"),*g=fopen("deque.out","w");

int n, a[5000003], k, x[5000003];

using namespace std;

int main()
{
    int p = 1, u = 0;
    long long s = 0;
    fscanf(f,"%d %d",&n,&k);
    for(int i = 1; i <= n; i++)
    {
        fscanf(f,"%d",&x[i]);
    }
    for(long i = 1; i <= n; i++)
    {
        while(a[u] > x[i] && p <= u)
        {
                u--;
        }
        a[++u] = x[i];
        if(i >= k )
        {
            s += a[p];
        }
        if(x[i-k+1] == a[p] && i >= k)
            p++;
    }
  /* for(int i = 1; i <= u; i++)
    {
      fprintf(g,"%d ",a[i]);
    }*/
    fprintf(g,"%lld", s);
    return 0;
}