Pagini recente » Cod sursa (job #1741393) | Cod sursa (job #1046336) | Cod sursa (job #232861) | Cod sursa (job #1451334) | Cod sursa (job #211688)
Cod sursa(job #211688)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
deque <int> coada;
int sir[500010],n,k;
int start,max_min;
void citire()
{
fin>>n>>k;
for (int i=0;i<n;i++)
fin>>sir[i];
}
void solve()
{
start=0;
for (int i=0;i<k;i++)
{
while (!coada.empty() && sir[coada.back()]>=sir[i])
coada.pop_back();
coada.push_back(i);
}
max_min=sir[coada.front()];
for (int i=k;i<n;i++)
{
if (coada.front()==i-k)
coada.pop_front();
while(!coada.empty() && sir[coada.back()]>=sir[i])
coada.pop_back();
coada.push_back(i);
if (sir[coada.front()]>max_min)
{
max_min=sir[coada.front()];
start=i;
}
}
}
void afisare()
{
fout<<start-k+2<<" "<<start+1<<" "<<max_min<<"\n";
}
int main ()
{
citire();
solve();
afisare();
return 0;
}