Cod sursa(job #3127028)
| Utilizator | Data | 7 mai 2023 09:49:30 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int st,dr,nr,k;
long long rez;
int main()
{ dr = -1;
f>>nr>>k;
vector<int> a(nr);
vector<int> pozitie(nr);
for(int i=0; i<nr; ++i)
{ f>>a[i];
while(st<=dr && a[i] <= a[pozitie[dr]])
dr = dr-1;
dr = dr + 1;
pozitie[dr] = i;
if(pozitie[st] == pozitie[dr]-k)
st = st+1;
if(pozitie[dr]+1 >= k)
rez = rez + a[pozitie[st]];
}
g<<rez;
f.close(); g.close();
return 0;
}
