Cod sursa(job #2068294)
Utilizator | Data | 17 noiembrie 2017 15:45:58 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.44 kb |
#include <fstream>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int a[5000005],d[5000005],n,k,p,u;
long long s;
int main()
{
in>>n>>k;
p=u=1;
d[p]=1;
in>>a[1];
for (int i=2;i<=n;i++)
{
in>>a[i];
while (a[d[u]]>=a[i]&&p<=u) u--;
u++;
d[u]=i;
if (d[u]-d[p]>=k) p++;
if (i>=k) s+=a[d[p]];
}
out<<s;
return 0;
}