Cod sursa(job #2350177)

Utilizator yo_andrei_2003Murica Andrei yo_andrei_2003 Data 21 februarie 2019 09:46:35
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <cstdio>
#include <deque>
using namespace std;
deque <pair<long long,long long> > v;
int main()
{
    long long n, i, t=0, a, k;
    FILE *fin, *fout;
    fin=fopen("deque.in" ,"r");
    fout=fopen("deque.out" ,"w");
    fscanf(fin, "%lld%lld" ,&n ,&k);
    for (i=0;i<k;i++) {
        fscanf(fin, "%lld" ,&a);
        while (v.empty()==0 && a<=v.front().first) {
            v.pop_front();
        }
        v.push_front(make_pair(a, i));
    }
    t=v.back().first;
    for (i=i;i<n;i++) {
        fscanf(fin, "%lld" ,&a);
        if (i-v.back().second>k-1) {
            v.pop_back();
        }
        while (v.empty()==0 && a<v.front().first) {
            v.pop_front();
        }
        v.push_front(make_pair(a, i));
           // fprintf(fout, "%d " ,t);
        t+=v.back().first;
        //fprintf(fout, "%d\n" ,t);
    }
    fprintf(fout, "%lld" ,t);
    return 0;
}