Cod sursa(job #2117306)
Utilizator | Ionica Anda Maria Andaionica | Data | 28 ianuarie 2018 19:31:57 |
---|---|---|---|
Problema | Secventa | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <fstream>
using namespace std;
ifstream f("vila2.in");
ofstream g("vila2.out");
int n,k,st1,dr1,st2,dr2,i,Max,a[100001],v1[100001],v2[100001];
int main()
{
f>>n>>k;
st1=1;dr1=0;
st2=1;dr2=0;
for(i=1;i<=n;i++){
f>>a[i];
while(st1<=dr1&&a[i]<=a[v1[dr1]])
dr1--;
dr1++;
v1[dr1]=i;
if(v1[st1]==i-k-1)
st1++;
while(st2<=dr2&&a[i]>=a[v2[dr2]])
dr2--;
dr2++;
v2[dr2]=i;
if(v2[st2]==i-k-1)
st2++;
Max=max(Max,a[v2[st2]]-a[v1[st1]]);
}
g<<Max;
return 0;
}