Cod sursa(job #1588645)
| Utilizator | Data | 3 februarie 2016 13:47:33 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
#include <deque>
using namespace std;
ifstream fi ("deque.in");
ofstream fo ("deque.out");
long long n,l,s,k,i,a[5000007];
deque<int>dq;
deque<int>::iterator it;
int main()
{
fi>>n>>k;
for (i=1;i<=n;i++) fi>>a[i];
for (i=1;i<=n;i++)
{
while (!dq.empty())
if (dq.back()+k-1<i) dq.pop_back();
else break;
while (!dq.empty())
if (a[i]<a[dq.front()]) dq.pop_front();
else break;
dq.push_front(i);
if (i>=k) s=s+a[dq.back()];
}
fo<<s;
return 0;
}
