Pagini recente » Rating Pocol Florin (florinpocol) | Cod sursa (job #3030504) | Cod sursa (job #301283) | Cod sursa (job #191035) | Cod sursa (job #811142)
Cod sursa(job #811142)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
long n,k;
vector <long> deq;
vector <long> p;
long long deque()
{ long long s=0;;
long stanga=0;
long dreapta=-1;
long a,i;
for( i=1;i<k;i++)
{
in>>a;
while ( (dreapta>=stanga) && ( a<deq[dreapta] ))
{
dreapta--;
}
dreapta++;
if (dreapta== deq.size())
{
deq.push_back(a);
p.push_back(i);
}
else
{
deq[dreapta]=a;
p[dreapta]=i;
}
}
for (i=k;i<=n;i++)
{
in>>a;
while ( (dreapta>=stanga) && a<deq[dreapta])
{ dreapta--;
}
dreapta++;
if (dreapta==deq.size())
{
deq.push_back(a);
p.push_back(i);
}
else
{
deq[dreapta]=a;
p[dreapta]=i;
}
if (i-p[stanga]+1>k)
{
stanga++;
}
s+=deq[stanga];
}
return s;
}
int main()
{
in>>n>>k;
out<<deque();
return 0;
}