Pagini recente » Cod sursa (job #2381) | Cod sursa (job #965104) | Cod sursa (job #1103594) | Cod sursa (job #849480) | Cod sursa (job #2676365)
#include <fstream>
#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 = -30105;
int main()
{
ios::sync_with_stdio(0);
fin.tie(0);
fout.tie(0);
fin >> n >> k;
for(int i = 1; i <= n; i++) {
fin >> v[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(i >= k && val < v[deck.back()]) {
val = v[deck.back()];
start = i - k + 1;
finish = i;
}
}
fout << start << " " << finish << " " << val << "\n";
return 0;
}