Cod sursa(job #2646922)
| Utilizator | Data | 2 septembrie 2020 14:12:23 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
struct tip{int val; int poz;};
deque<tip> Q;
int x,n,i,k;
long long int suma;
int main()
{fin>>n>>k;
while(n--)
{
i++;
fin>>x;
while( !Q.empty() && Q.back().val>= x)
Q.pop_back();
Q.push_back({x,i});
while(!Q.empty() && Q.front().poz<=i-k)
Q.pop_front();
if(i>=k)
suma+=Q.front().val;
}
fout<<suma;
return 0;
}
