Cod sursa(job #2368216)
| Utilizator | Data | 5 martie 2019 14:37:19 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.73 kb |
#include<fstream>
#include<deque>
using namespace std;
ifstream f ("deque.in");
ofstream g ("deque.out");
struct cel{
int val,poz;
}y,z;
deque <cel> q;
int n,k,x;
long long sum;
int main()
{
f>>n>>k;
f>>x;
y.poz=1;
y.val=x;
q.push_back(y);
for(int i=2;i<=n;++i){
f>>x;
z=q.back();
while(x<=z.val){
q.pop_back();
if(q.empty()) break;
z=q.back();
}
y.poz=i;
y.val=x;
q.push_back(y);
if(i>=k){
z=q.front();
while(z.poz<=i-k){
q.pop_front();
z=q.front();
}
sum+=z.val;
}
}
g<<sum<<'\n';
}
