Cod sursa(job #854654)
| Utilizator | Data | 13 ianuarie 2013 20:23:22 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.47 kb |
#define MAXN 5000001
#include <fstream>
using namespace std;
int K,N,A[MAXN],dq[MAXN];
ifstream f("deque.in");
ofstream g("deque.out");
long long deque(){int p,u,i;
p=1;u=0;
long long sum=0;
for (i=1;i<=N;i++)
{
while ((p<=u)&&(A[i]<=A[dq[u]])) u--;
dq[++u]=i;
if (dq[p]==i-K) p++;
if (i>=K) sum+=A[dq[p]];
}
return sum;
}
int main()
{
f>>N>>K;
for (int i=1;i<=N;i++) f>>A[i];
g<<deque();
return 0;
}
