Pagini recente » Cod sursa (job #1048507) | Cod sursa (job #3261726) | Istoria paginii utilizator/hai_la_olimpiada_2019-2020_sv | Cod sursa (job #1346716) | Cod sursa (job #2323521)
#include <fstream>
using namespace std;
ifstream in("vila2.in");
ofstream out("vila2.out");
int v[100001],dqmin[100001],dqmax[100001],d,n,k;
int main()
{
in>>n>>k;
k++;
int stmin=0,stmax=0,drmin=-1,drmax=-1;
for(int i=0;i<n;i++){
in>>v[i];
if(stmin<=drmin && dqmin[stmin]==i-k){
stmin++;
}
while(stmin<=drmin && v[i]<=v[dqmin[drmin]])
drmin--;
dqmin[++drmin]=i;
if(stmax<=drmax && dqmax[stmax]==i-k){
stmax++;
}
while(stmax<=drmax && v[i]>=v[dqmax[drmax]])
drmax--;
dqmax[++drmax]=i;
if(i>=k-1)
d=max(d,v[dqmax[stmax]]-v[dqmin[stmin]]);
}
out<<d;
return 0;
}