Pagini recente » Cod sursa (job #332553) | Cod sursa (job #486207) | Cod sursa (job #450856) | Cod sursa (job #746624) | Cod sursa (job #2060829)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int d[5000001],v[5000001];
int main()
{
long long st=0,dr=-1,k,n,s=0;
f>>n>>k;
for(int i=0;i<n;i++)
{
f>>v[i];
if(st<=dr&&d[st]==i-k) st++;//am terminat o secventa de k elemente
while(st<=dr&&v[i]<=v[d[dr]]) dr--;///adaug in dreapta
cout<<st<<" "<<dr<<endl;
d[++dr]=i;///prelucrez min secv curente
if(i>=k-1) s+=v[d[st]], cout<<i<<" "<<v[d[st]]<<endl<<endl;
}
g<<s;
f.close();
g.close();
return 0;
}