Cod sursa(job #1173351)
| Utilizator | Data | 19 aprilie 2014 13:39:43 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
#define NM 5000005
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,i,v[NM],be,en,q[NM],k;
long long sum;
int main()
{
fin >> n >> k;
be=1;
for (i=1; i<=n; i++)
{
fin >> v[i];
while (en>=be && v[i]<=v[q[en]])
en--;
en++;
q[en]=i;
while (be<=en && q[be]<i-k+1)
be++;
if (be<=en && i>=k)
sum+=v[q[be]];
}
fout << sum << '\n';
fin.close();
fout.close();
return 0;
}
