Cod sursa(job #1189636)
| Utilizator | Data | 23 mai 2014 12:00:23 | |
|---|---|---|---|
| Problema | Deque | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <fstream>
#define inFile "deque.in"
#define outFile "deque.out"
using namespace std;
int coada[5000001],a[5000001];
int main()
{
int n,k,i,y,x,s=0;
ifstream fin(inFile);
fin>>n>>k;
for(i=0;i<n;i++) fin>>a[i];
fin.close();
y=1;x=0;
for(i=0;i<n;i++)
{
while(y<=x && a[i]<=a[coada[x]]) x--;
coada[++y]=i;
if(coada[y]==i-k+1) y++;
if(i>=k-1) s+=a[coada[y]];
}
ofstream fout(outFile);
fout<<s;
fout.close();
}
