Pagini recente » Cod sursa (job #1838144) | Cod sursa (job #3224009) | Cod sursa (job #1254732) | Cod sursa (job #1258979) | Cod sursa (job #579746)
Cod sursa(job #579746)
#include <cstdio>
#include <deque>
#define LIM 5000005
using namespace std;
FILE *f=fopen("deque.in", "r"), *g=fopen("deque.out", "w");
long long n, k, i, s[LIM], suma;
deque <long long> v;
inline void deckit(long long kzk)
{
while(s[v.back()]>s[kzk]&&!v.empty())
v.pop_back();
v.push_back(kzk);
}
inline void citeste()
{
fscanf(f, "%lld%lld", &n, &k);
for (i=1;i<=n;i++)
fscanf(f, "%lld", &s[i]);
}
inline void decuieste()
{
v.push_back(1);
for (i=k;i<=n;i++)
{
if (v.front()<=i-k)
v.pop_front();
deckit(i);
suma+=s[v.front()];
}
}
int main()
{
citeste();
decuieste();
fprintf(g, "%lld", suma);
fclose(f);
fclose(g);
return 0;
}