Pagini recente » Cod sursa (job #1978304) | Cod sursa (job #1399330) | Cod sursa (job #850324) | Cod sursa (job #778163) | Cod sursa (job #2755695)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("knumere.in");
ofstream fout("knumere.out");
int n, k, ans = LLONG_MAX;
int v[1001001];
int dif[1001001];
int dq[1001001];
int st, dr;
int32_t main()
{
cin >> n >> k;
for(int i = 1; i <= n; i ++)
{
cin >> v[i];
}
for(int i = 1; i <= n; i ++)
{
if(i <= n)
dif[i] = v[i+1] - v[i];
}
st = 1;
dr = 0;
for(int i = 1; i < n; i ++)
{
while(st <= dr && dif[dq[dr]] < dif[i])
{
dr--;
}
while(st <= dr && dq[st] <= i - (n - k - 1))
{
st++;
}
dq[++dr] = i;
if(dif[dq[st]] < ans && i >= (n - k - 1))
ans = dif[dq[st]];
}
cout << ans << '\n';
return 0;
}