Pagini recente » Cod sursa (job #844232) | Cod sursa (job #176253) | Cod sursa (job #1255482) | Cod sursa (job #1256845) | Cod sursa (job #2044405)
#include <iostream>
#include <fstream>
#include <deque>
#define nmax 100005
using namespace std;
ifstream fin("vila2.in");
ofstream fout("vila2.out");
deque <int> D,M;
int v[nmax];
int n,k,i,maxi=0,x;
void Citire()
{
fin>>n>>k;
for(i=1;i<=n;++i) fin>>v[i];
++k;
}
void Rezolvare()
{
for(i=1;i<=n;++i)
{
while(!D.empty() && v[D.back()]>=v[i])
D.pop_back();
D.push_back(i);
if(i-k==D.front()) D.pop_front();
while(!M.empty() && v[M.back()]<=v[i])
M.pop_back();
M.push_back(i);
if(i-k==M.front()) M.pop_front();
if(i>=k)
{
x=v[M.front()]-v[D.front()];
if(x>maxi) maxi=x;
}
}
}
int main()
{
Citire();
Rezolvare();
fout<<maxi;
return 0;
}