Pagini recente » Cod sursa (job #361873) | Cod sursa (job #612904) | Cod sursa (job #19408) | Cod sursa (job #2755083) | Cod sursa (job #2054149)
#include <iostream>
#include <fstream>
using namespace std;
int v[100000],d[50000],x[50000];
int main()
{
ifstream f("vila2.in");
ofstream o("vila2.out");
int n,k,i,stmax,stmin,drmax,drmin,rez = -1;
f>>n>>k;
stmax=stmin=0;
drmax=drmin=-1;
k++;
for(i=0; i<n; i++)
{
f>>v[i];
if(stmin<=drmin&&d[stmin]==i-k)
{
stmin++;
}
while(stmin<=drmin&&v[i]<=v[d[drmin]])
{
drmin--;
}
d[++drmin]=i;
if(stmax<=drmax&&x[stmax]==i-k)
{
stmax++;
}
while(stmax<=drmax&&v[i]>=v[x[drmax]])
drmax--;
x[++drmax]=i;
if(i>=k-1)
{
rez=max (rez,v[x[stmax]]-v[d[stmin]]);
}
}
o<<rez;
}