Pagini recente » Cod sursa (job #1390192) | Cod sursa (job #2188009) | Cod sursa (job #1510330) | Cod sursa (job #1754556) | Cod sursa (job #1830770)
#include <iostream>
#include<fstream>
#include<deque>
using namespace std;
int v[500001],i,n,k,ls,ld,mx;
deque<int> d;
int main()
{
ifstream f("secventa.in");f>>n>>k>>v[1];
d.push_front(1);
++k;++n;
for(i=2;i<k;++i)
{
f>>v[i];
if(v[i]<v[d.back()])
{
d.clear();
d.push_front(i);
}
else
{
while(v[d.front()]>v[i])
{
d.pop_front();
}
d.push_front(i);
}
}
ls=1;ld=k;mx=v[d.back()];
for(i=k;i<n;++i)
{
if(d.back()+k-2<i)
d.pop_back();
f>>v[i];
if(v[i]<v[d.back()])
{
d.clear();
d.push_front(i);
}
else
{
while(v[d.front()]>v[i])
{
d.pop_front();
}
d.push_front(i);
}
if(v[d.back()]>mx)
{
ls=i-k+2;
ld=i;
mx=v[d.back()];
}
}
ofstream g("secventa.out");
g<<ls<<" "<<ld<<" "<<mx;
return 0;
}