Cod sursa(job #1090812)
| Utilizator | Data | 23 ianuarie 2014 09:13:03 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <fstream>
using namespace std;
fstream f("deque.in",ios::in);
fstream g("deque.out",ios::out);
int n,k,i,inc,sf;
int a[5000005],deque[5000005],suma;
int main()
{
f>>n>>k;
for (i=1;i<=n;i++) f>>a[i];
inc=1;sf=0;
suma=0;
for (i=1;i<=n;i++)
{
while ((inc<=sf)&&(a[i]<=a[deque[sf]])) sf--;
sf++;
deque[sf]=i;
if(deque[inc]==i-k) inc++;
if (i>=k) suma=suma+a[deque[inc]];
}
g<<suma;
f.close();g.close();
return 0;
}
