Pagini recente » Cod sursa (job #1854606) | Cod sursa (job #2813431) | Cod sursa (job #2376754) | Cod sursa (job #1588321) | Cod sursa (job #2060725)
#include<fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int d[5000001],v[5000001];
int main()
{
int 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;
}