Pagini recente » Cod sursa (job #3129839) | Cod sursa (job #2541190) | Cod sursa (job #2026149) | Cod sursa (job #1325015) | Cod sursa (job #543284)
Cod sursa(job #543284)
#include<iostream.h>
#include<fstream.h>
#define N 5000001
typedef struct deque
{long e[N],p,u;};
long a,n,k,i,b[N];
long long s=0;
deque q;
int main()
{q.p=q.u=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.u!=q.p&&a<q.e[q.u-1])
q.u--;
q.e[q.u++]=a;
b[q.p]++;
b[q.p+1]=q.u-q.p-1;
b[q.u-1]=1;
if(((q.u-q.p==1&&q.p==i-k)||(q.p<i-k&&q.u-q.p<k)||(i==k&&b[q.p]>1))&&b[q.p]<k)
s+=q.e[q.p];
else
if(q.u-q.p==k||b[q.p]==k||q.p==i-k||(i==k&&b[q.p]==1))
s+=q.e[q.p++];}
f2<<s;
f1.close();
f2.close();
return 0;}