Pagini recente » Profil StarGold2 | Cod sursa (job #2008555) | Cod sursa (job #892891) | Cod sursa (job #667788) | Cod sursa (job #3001491)
//Ilie Dumitru
#include<cstdio>
#include<deque>
const int NMAX=5000005;
int N, K, v[NMAX];
std::deque<int> dq;
inline void process(int i)
{
if(dq.front()==i-K)
dq.pop_front();
while(!dq.empty() && v[dq.back()]>=v[i])
dq.pop_back();
dq.push_back(i);
}
int main()
{
FILE *f=fopen("deque.in", "r"), *g=fopen("deque.out", "w");
int i;
long long int ans=0;
fscanf(f, "%d%d", &N, &K);
for(i=0;i<N;++i)
fscanf(f, "%d", v+i);
for(i=0;i<K;++i)
process(i);
ans=v[dq.front()];
for(;i<N;++i)
{
process(i);
ans+=v[dq.front()];
}
fprintf(g, "%lld", ans);
fclose(f);
fclose(g);
return 0;
}