Cod sursa(job #3195352)

Utilizator AlexandruTigauTigau Alexandru AlexandruTigau Data 20 ianuarie 2024 16:32:42
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out"); 

int v[5000001],d[5000001],n,k;

void citire(int &n, int &k)
{
  fin>>n>>k;
  for(int i=1;i<=n;i++)
    fin>>v[i];
}
int main() {
	 int inc=1,sf=0;// coada vida
   long long s=0;
   citire(n,k);
   for(int i=1;i<=n;i++)
   {
     // analizam secventa care se termina cu  v[i]
     
     while(inc<=sf && v[d[sf]]>=v[i])sf--;
     sf++;
     d[sf]=i;
     if(i>=k){
       //   v[i-k + 1]........v[i]
       if(d[inc]==i-k) inc++;
       s=s+v[d[inc]];
       
     }
   }
   
   
   fout<<s; 
	return 0;
}