Cod sursa(job #1019858)
| Utilizator | Data | 1 noiembrie 2013 00:18:18 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include<fstream>
#include<deque>
#define dim 5000032
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n,k,a[dim];
long long suma;
void solve(){
deque< int >w;
for(int i=1;i<=n;++i){
while(!w.empty() && a[w.back()]>=a[i])
w.pop_back();
w.push_back(i);
if(i-w.front()==k){
w.pop_front();
}
if(i>=k){
suma+=a[w.front()];
}
}
g<<suma<<"\n";
}
int main ( ) {
f>>n>>k;
for(int i=1;i<=n;++i){
f>>a[i];
}
solve();
return 0;
}