Cod sursa(job #1105060)

Utilizator DanielRusuDaniel Rusu DanielRusu Data 11 februarie 2014 13:51:33
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <cstdio>
#include <deque>

using namespace std;

int n, k, i, mn = 10000001, nr, s, p;

int main() {
    std::deque<int> mydeque;

    FILE *fin = fopen("deque.in","r");
    FILE *fout = fopen("deque.out","w");

    fscanf(fin, "%d%d", &n, &k);

    for(i = 1;i <= k;i++) {
        fscanf(fin ,"%d", &nr);

        mydeque.push_back(nr);

        if(nr < mn) mn = nr;
    }

    s = mn;

    for(i = k + 1;i <= n;i++) {
        fscanf(fin ,"%d", &nr);

        mydeque.push_back(nr);
        if(mn > nr) mn = nr;

        p = mydeque.front();
        if(p == mn) {
            mydeque.pop_front();

            mn = 10000000;
            for (unsigned j = 0; j < mydeque.size(); j++)
                if(mn > mydeque.at(j)) mn = mydeque.at(j);
        }
        else mydeque.pop_front();

        s += mn;
    }

    fprintf(fout, "%d\n", s);

    fclose(fin);
    fclose(fout);

    return 0;
}