Pagini recente » Cod sursa (job #1306222) | Cod sursa (job #1166582) | Cod sursa (job #2846454) | Cod sursa (job #1922103) | Cod sursa (job #1817479)
#include <iostream>
#include <deque>
#include <vector>
#include <algorithm>
#include <fstream>
using namespace std;
int secventa(int N, int K, int& pos, vector<int> array) {
int base;
deque<int> dq;
for(int i = 0; i < N; i++) {
if(!dq.empty() && dq.front() == (i - K)) {
dq.pop_front();
}
while(!dq.empty() && array[dq.back()] > array[i]) {
dq.pop_back();
}
dq.push_back(i);
if(i == K || (i >= K && base < array[dq.front()])) {
base = array[dq.front()];
pos = i;
}
}
return base;
}
int main() {
ifstream in("secventa.in");
int N, K, pos;
in >> N >> K;
ofstream out("secventa.out");
vector<int> array;
int i;
while(in >> i) {
array.push_back(i);
}
int sec = secventa(N, K, pos, array);
out << pos - K + 1 << " " << pos << " " << sec;
return 0;
}