Pagini recente » Cod sursa (job #1639740) | Istoria paginii utilizator/2taylorc783ho4 | Cod sursa (job #2010359) | Profil M@2Te4i | Cod sursa (job #1254145)
#include<fstream>
#define NMAX 5000010
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n, k, p, u, a[NMAX], dq[NMAX];
long long sumaMinime=0;
void adaugaSpate(int valoare, int pozitie)
{
while (a[dq[u]]>valoare && u>=p) --u;
dq[++u]=pozitie;
}
void eliminaFata(int pozitie)
{
if (pozitie-dq[p]==k) ++p;
}
int main()
{
f>>n>>k>>a[1];
p=u=1; dq[p]=1;
for (int i=2; i<=n; ++i)
{
f>>a[i];
eliminaFata(i);
adaugaSpate(a[i], i);
if (i>=k) sumaMinime+=a[dq[p]];
}
g<<sumaMinime<<"\n";
return 0;
}