Pagini recente » Cod sursa (job #1755832) | Cod sursa (job #380739) | Cod sursa (job #1356752) | Cod sursa (job #2633652) | Cod sursa (job #486688)
Cod sursa(job #486688)
#include <iostream>
#include <fstream>
#include <string>
#include <deque>
using namespace std;
#define FILE_IN "secventa.in"
#define FILE_OUT "secventa.out"
int N,K;
int V[500000];
int main()
{
FILE* fisIn = fopen(FILE_IN, "r");
ofstream fisOut(FILE_OUT);
fscanf(fisIn, "%d %d", &N, &K);
for (int i=0; i<N; i++) fscanf(fisIn, "%d", V+i);
int best = V[0];
int start = 0;
deque<int> deq;
for (int i=0; i<N; i++)
{
while (!deq.empty() && (deq.front() <= i-K)) deq.pop_front();
int elem = V[i];
while (!deq.empty() && (V[deq.back()] >= elem)) deq.pop_back();
deq.push_back(i);
if ((i>=K) && (V[deq.front()] > best))
{
best = V[deq.front()];
start = i-K+1;
}
}
fisOut << (start+1) << " " << (start+K) << " " << best;
}