Pagini recente » Cod sursa (job #120734) | Cod sursa (job #3127320) | Cod sursa (job #822088) | Cod sursa (job #2518614) | Cod sursa (job #1329692)
#include <iostream>
#include <fstream>
#include <vector>
#include <deque>
#define inf (1<<30)
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
vector<int> v;
deque<int > deq;
int n, k, mx=-inf,st,dr;
void verificare()
{
if (v[deq.front()]>mx)
{
mx=v[deq.front()];
dr=deq.front();
st=dr;
}
}
void ins(int x)
{
while(!deq.empty() && v[deq.back()] > v[x])
deq.pop_back();
deq.push_back(x);
}
//ATTEKNTJXE
int main()
{
f >> n >> k;
v.resize(n+1);
for(int i=1; i<k; i++)
{
f >> v[i];
ins(i);
}
for(int i=k; i<=n; i++)
{
f >> v[i];
if (deq.front() <= i-k) deq.pop_front();
ins(i);
verificare();
}
while(st>1 && v[st-1]>v[dr]) st--;
while(dr-st+1<k) dr++;
g << st << " " << dr << " " << mx;
return 0;
}