Cod sursa(job #1052149)
| Utilizator | Data | 10 decembrie 2013 21:37:03 | |
|---|---|---|---|
| Problema | Deque | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include<iostream.h>
#include<fstream.h>
int main()
{
ifstream f;
f.open("date.in");
ofstream g("date.out");
int A[5000000],Deque[5000000],Suma=0,N,K,sfarsit=0,inceput=-1,i;
f>>N>>K;
for(i=0;i<N;i++)
f>>A[i];
for(i=0;i<N;i++)
{
while(sfarsit<=inceput && A[i]<=A[Deque[inceput]])
inceput=inceput-1;
Deque[++inceput]=i;
if(Deque[sfarsit]==i-K)
sfarsit=sfarsit+1;
if(i>=K-1)
Suma=Suma+A[Deque[sfarsit]];
}
g<<Suma;
return 0;
}
