Pagini recente » Cod sursa (job #639837) | Cod sursa (job #1904366) | Cod sursa (job #942276) | Cod sursa (job #1957166) | Cod sursa (job #2232509)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,k,Front,Back,Deque[5000005],i,j,a[5000005],mini;
long long s;
int main()
{
fin>>n>>k;
Front=0; Back=1;
for(i=1;i<k;i++)
{
fin>>a[i];
Deque[++Front]=a[i];
}
sort(Deque+1, Deque+k);
for(;i<=n;i++)
{
fin>>a[i];
while(Front>=Back && a[i]<=Deque[Front]) Front--;
Deque[++Front]=a[i];
if(Deque[Back]==a[i-k]) Back++;
s+=Deque[Back];
/*mini=Deque[Back];
for(j=Back+1;j<Front;j++) mini=min(mini,Deque[j]);
if(a[i]<Deque[Front]) Deque[Front]=a[i];
else Deque[++Front]=a[i];
mini=min(mini,Deque[Front]);
s+=mini;
if(Deque[Back]==a[i-k+1]) Back++;
*/
}
fout<<s;
return 0;
}