Cod sursa(job #584704)
| Utilizator | Data | 26 aprilie 2011 14:05:18 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int a[5000001],n,i,deque[5000001],start,final,k;
long long s;
int main () {
f >> n >> k;
for (i=1;i<=n;i++)
f >> a[i];
start=1;final=0;
for (i=1;i<=n;i++) {
while (start<=final && a[i]<=a[deque[final]]) final--;
final++;deque[final]=i;
if (deque[start]==i-k) start++;
if (i>=k) s+=a[deque[start]];
}
g << s << '\n';
f.close();g.close();
return 0;
}
