Pagini recente » Cod sursa (job #2482534) | Cod sursa (job #879865) | Cod sursa (job #2931020) | Cod sursa (job #2112547) | Cod sursa (job #1053947)
#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;
}