Cod sursa(job #799515)
| Utilizator | Data | 19 octombrie 2012 10:13:58 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
# include <fstream>
# define nmax 5000000
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k;
int deque[nmax];
int a[nmax];
int p, q;
int sum;
int main() {
int i;
fin >> n >> k;
for(i = 1; i <= n; ++ i) fin >> a[i];
p = 1;
for(i = 1; i <= n; ++ i) {
while(p <= q && a[i] <= a[deque[q]]) --q;
deque[++q] = i;
// ++ p;
if(deque[p] == i-k) ++p;
if(i >= k) sum += a[deque[p]];
}
fout << sum << "\n";
return 0;
}
