Pagini recente » Cod sursa (job #823368) | Cod sursa (job #1475726) | Cod sursa (job #2926496) | Cod sursa (job #3219490) | Cod sursa (job #811722)
Cod sursa(job #811722)
#include <stdio.h>
#include <vector>
using namespace std;
typedef struct nod{long long info; nod *urm;}lst;
lst *prim, *ultim, *q, *r;
FILE *f=fopen("deque.in","r"), *g=fopen("deque.out","w");
void insert(long long int x)
{
q=new lst;
q->info=x;
q->urm=NULL;
ultim->urm=q;
ultim=q;
}
void del()
{
q=prim;
prim=prim->urm;
delete q;
}
int main()
{
long long int n, i, x, k, min, s=0, j;
fscanf(f, "%lld""%lld", &n, &k);
fscanf(f, "%lld", &x);
prim = new lst;
ultim = new lst;
prim->info = x;
prim->urm=NULL;
ultim=prim;
min=x;
for(i=1;i<k;i++)
{
fscanf(f, "%lld", &x);
if(min>x) min=x;
insert(x);
}
s+=min;
for(i=1;i<=n-k;i++)
{
fscanf(f, "%lld", &x);
if(x<=min) {
del();
insert(x);
min=x;
}
else
if(prim->info>min) {
del();
insert(x);
}
else {
del();
min=prim->info;
insert(x);
for(q=prim->urm;q!=NULL;q=q->urm)
{
if(min>q->info)
min=q->info;
}
}
s+=min;
}
fprintf(g, "%lld", s);
return 0;
}