Cod sursa(job #2543459)

Utilizator LorenaMariaHantig Lorena LorenaMaria Data 11 februarie 2020 10:23:49
Problema Deque Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int n,k;
int a[5000005];
int st[5000005],dr[5000005];
int main()
{ in>>n>>k;
  for(int i=1;i<=n;i++)
    in>>a[i];
  st[0]=100000000;
  for(int i=1;i<=n;i++)
  { if(i%k==1)
       st[i]=a[i];
    else
       st[i]=min(st[i-1],a[i]);
  }
  dr[n+1]=100000000;
  dr[n]=a[n];
  for(int i=n-1;i>0;i--)
  { if(i%k==0)
       dr[i]=a[i];
    else
       dr[i]=min(dr[i+1],a[i]);
  }
  long long s=0;
  int l=1;
  while(l<=n)
  { s+=1LL*min(dr[l],st[l+k-1]);
    l++;
  }
  out<<s<<'\n';
  in.close();
  out.close();
  return 0;
}