Pagini recente » Cod sursa (job #175777) | Cod sursa (job #1202086) | Borderou de evaluare (job #21000) | Cod sursa (job #59977) | Cod sursa (job #903021)
Cod sursa(job #903021)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
deque <int>d,c;
int n,i,k,a[5000001];
long long s;
ifstream f("deque.in");
ofstream g("deque.out");
int main()
{
f>>n>>k;s=0;
for(i=1;i<=n;i++)
{
f>>a[i];
while (!d.empty()&&d.back()>a[i]) d.pop_back();
while (!c.empty()&&c.back()<a[i]) c.pop_back();
d.push_back(a[i]);
c.push_back(a[i]);
if (i>k&&d.front()==a[i-k]) d.pop_front();
if (i>k &&c.front()==a[i-k]) c.pop_front();
if (i>=k&&c.front()-d.front()>s)
s=c.front()-d.front();
}
g<<s;
return 0;
}