Cod sursa(job #588313)
| Utilizator | Data | 7 mai 2011 17:52:58 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include<fstream.h>
#define N 5000001
long a,n,k,i,b[N],q[N],p,u;
long long s=0;
int main()
{b[0]=p=u=0;
ifstream f("deque.in");
ofstream g("deque.out");
f>>n>>k;
for(i=1;i<=n;i++)
{f>>a;
while(u!=p&&a<q[u-1])
u--;
q[u++]=a,b[p]++;
if(u-p>1)
b[p+1]++;
b[u-1]=1;
if(((u-p==1&&p==i-k)||(p<i-k&&u-p<k)||(i==k&&b[p]>1))&&b[p]<k)
s+=q[p];
else
if(u-p==k||b[p]==k||p==i-k||(i==k&&b[p]==1))
s+=q[p++];}
g<<s;
f.close();
g.close();
return 0;}
