Pagini recente » Istoria paginii runda/concurnfo/clasament | Cod sursa (job #439576) | Monitorul de evaluare | Cod sursa (job #452888) | Cod sursa (job #733186)
Cod sursa(job #733186)
#include <fstream>
#include <deque>
#define nmax 1000005
using namespace std;
ifstream f("knumere.in");
ofstream g("knumere.out");
int n, k;
long long a[nmax];
deque<int> dq;
long long rez = -1000000001LL;
void citeste(){
f >> n >> k;
k = n-k-1;
for(int i=1; i<=n; i++){
f >> a[i];
if (i==1) continue;
a[i-1] = a[i] - a[i-1];
}
}
void rezolva(){
for(int i=1; i<n; i++){
while(dq.size() && a[i] > a[dq.back()]) dq.pop_back();
dq.push_back(i);
if (i>k && dq.size()) dq.pop_front();
if (i>=k)rez = max(rez, a[dq.front()]*1LL);
}
g << rez << "\n";
}
int main(){
citeste();
rezolva();
f.close();
g.close();
return 0;
}