Cod sursa(job #1688955)
| Utilizator | Data | 13 aprilie 2016 20:22:41 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include <fstream>
using namespace std;
ofstream fout("deque.out");
ifstream fin ("deque.in");
int v[5000005],deq[5000005],n;
long long suma,cs,cd,k;
int main()
{
fin>>n>>k;
for(int i = 1 ; i <= n ; i++) fin>>v[ i ];
cs = 1 ;
cd = 0 ;
for(int i = 1 ; i <= n ; i++)
{
while( cd >= cs && v[ i ] <= v[ deq[ cd ] ]) cd--;
deq[ cd + 1 ] = i ;
cd++;
if( deq[ cs ] == i - k ) cs++;
if( i >= k) suma += v[ deq[ cs ] ];
}
fout<<suma;
}
