Pagini recente » Diferente pentru planificare intre reviziile 58 si 131 | Diferente pentru 12-ponturi-pentru-programatorii-cc intre reviziile 7 si 8 | Cod sursa (job #1564108) | Cod sursa (job #553171) | Cod sursa (job #1554222)
#include <fstream>
#include <deque>
#include <iostream>
using namespace std;
const int MAX = 500000;
int N, K, V[MAX];
int main() {
ifstream f("secventa.in");
ofstream g("secventa.out");
f >> N >> K;
deque<int> deque;
int min = -30000;
int end = 0;
for(int i = 1; i <= N ; i++) {
f >> V[i];
while(!(deque.empty()) && V[deque.back()] >= V[i]) {
deque.pop_back();
}
deque.push_back(i);
if(deque.front() <= i-K) {
deque.pop_front();
}
if(i >= K && min < V[deque.front()]) {
min = V[deque.front()];
end = i;
}
}
g<<end-K+1<<" "<<end<<" "<<min;
return 0;
}