Pagini recente » Cod sursa (job #1478477) | Cod sursa (job #2433672) | Cod sursa (job #2860620) | Cod sursa (job #2848384) | Cod sursa (job #543281)
Cod sursa(job #543281)
#include<iostream.h>
#include<fstream.h>
#define N 5000001
typedef struct deque
{long elem[N],prim,ultim;};
long a,n,k,i,b[N];
long long s=0;
deque q;
int main()
{q.prim=q.ultim=0;
ifstream f1("deque.in");
ofstream f2("deque.out");
f1>>n>>k;
b[0]=0;
for(i=1;i<=n;i++)
{f1>>a;
while(q.ultim!=q.prim&&a<q.elem[q.ultim-1])
q.ultim--;
q.elem[q.ultim++]=a;
b[q.prim]++;
b[q.prim+1]=q.ultim-q.prim-1;
b[q.ultim-1]=1;
if((i>k||(i==k&&b[q.prim]>1))&&b[q.prim]<k)
s+=q.elem[q.prim];
else
if(q.ultim-q.prim==k||b[q.prim]==k||q.prim==i-k||(i==k&&b[q.prim]==1))
s+=q.elem[q.prim++];}
f2<<s;
f1.close();
f2.close();
return 0;}