Cod sursa(job #1053947)

Utilizator trinca-ciprianFMI - Trinca Ciprian trinca-ciprian Data 13 decembrie 2013 01:32:41
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 1.27 kb
#include<fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
struct nod
{
    long x;
    nod *urm;
};
long minim (nod *p,long *ind)
{
    long min,i;
    min = p->x;
    i = *ind;
    for (;p;p=p->urm,i++)
        if (p->x < min) {min = p->x; *ind = i;}
    return min;
}
int main()
{
    long n,k,i,suma,min,ind_min,ind_dq,c;
    nod *dq,*aux,*sf;
    f>>n;
    f>>k;
        aux = new nod;
        f>>aux->x;
        aux->urm = NULL;
        dq = aux;
        sf = aux;
        min = dq->x;
        ind_min = 1;
        ind_dq = 1;
    for (i=2;i <= k;i++)
    {
        aux = new nod;
        f>>aux->x;
        aux->urm = NULL;
        sf->urm = aux;
        sf = aux;
        if (min > aux->x) {min = aux->x; ind_min = i;}
    }
    suma = min;
    for (i=k+1; i <= n;i++)
    {
        f>>c;
            aux = new nod;
            aux->x = c;
            aux->urm = NULL;
            sf->urm = aux;
            sf = aux;
        aux = dq;
        dq = dq->urm;
        ind_dq++;
        delete(aux);

        if (ind_dq > ind_min) ind_min=ind_dq, min = minim(dq,&ind_min);

        if (c < min) min =c, ind_min = i;

        suma+=min;
    }
    g<<suma;
    f.close();
    g.close();
    return 0;
}