Cod sursa(job #2400892)
Utilizator | Data | 9 aprilie 2019 11:15:13 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <fstream>
using namespace std;
int v[50000001], D[5000001], i, n, k, p, u;
long long sol;
int main()
{
ifstream fin ("deque.in");
ofstream fout ("deque.out");
fin>>n>>k;
for (i=1; i<=n; i++)
fin>>v[i];
p=1;
u=0;
for (i=1; i<=n; i++)
{
while (p<=u && v[i]<=v[D[u]])
u--;
D[++u]=i;
if (D[p]==i-k)
p++;
if (i>=k)
sol+=v[D[p]];
}
fout<<sol;
}