Pagini recente » Cod sursa (job #2418714) | Cod sursa (job #2501976) | Cod sursa (job #2105812) | Cod sursa (job #1023145) | Cod sursa (job #2583414)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("vila2.in");
ofstream fout("vila2.out");
const int NM = 1e5;
unsigned short int v[NM];
int main()
{
int n, k;
fin >> n >> k;
++k;
deque<int> mindeq, maxdeq;
int difmax = -1;
for (int i = 0; i < n; ++i) {
fin >> v[i];
while (!mindeq.empty() && v[mindeq.front()] >= v[i])
mindeq.pop_front();
mindeq.push_front(i);
while (!mindeq.empty() && i - mindeq.back() >= k)
mindeq.pop_back();
while (!maxdeq.empty() && v[maxdeq.front()] <= v[i])
maxdeq.pop_front();
maxdeq.push_front(i);
if (i - maxdeq.back() >= k)
maxdeq.pop_back();
if (i >= k - 1)
difmax = max(difmax, v[maxdeq.back()] - v[mindeq.back()]);
}
fout << difmax;
return 0;
}