Pagini recente » Cod sursa (job #2500998) | Cod sursa (job #869206) | Cod sursa (job #2289943) | Cod sursa (job #1177828) | Cod sursa (job #2676358)
#include <fstream>
#include <algorithm>
#include <deque>
using namespace std;
typedef long long ll;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
deque <int> deck;
const int NMAX = 500005;
int v[NMAX];
int k, n;
int start, finish, val;
int main()
{
fin >> n >> k;
for(int i = 1; i <= n; i++)
fin >> v[i];
for(int i = 1; i <= n; i++) {
while(!deck.empty() && deck.back() < i - k + 1) deck.pop_back();
while(!deck.empty() && v[i] < v[deck.front()]) deck.pop_front();
deck.push_front(i);
if(val < v[deck.back()]) {
val = v[deck.back()];
start = i - k + 1;
finish = i;
}
}
fout << start << " " << finish << " " << val;
return 0;
}