Pagini recente » Istoria paginii runda/isded/clasament | Cod sursa (job #1076046) | Cod sursa (job #2201661) | Cod sursa (job #2287089) | Cod sursa (job #2060751)
#include<fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int d[5000001],v[5000001];
int main()
{
long long st=0,dr=-1,k,n,sum=0;
fin>>n>>k;
for(int i=0;i<n;i++) ///elimin din stanga elementul care face parte din secventa
{
fin>>v[i];
if(st<=dr&&d[st]==i-k) st++;///eliminarea din stanga
while(st<=dr&&v[i]<=v[d[dr]]) dr--;///adaug in dreapta
d[++dr]=i;///prelucrez min secv curente
if(i>=k-1) sum+=v[d[st]];
}
fout<<sum;
return 0;
}