Pagini recente » Cod sursa (job #2252216) | Cod sursa (job #2312324) | Borderou de evaluare (job #520061) | Cod sursa (job #2417343) | Cod sursa (job #565873)
Cod sursa(job #565873)
#include <fstream>
using namespace std;
#define dim 500001
int v[dim], deque[dim];
int main()
{
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n, i, k;
fin>>n >>k;
for(i=1;i<=n;++i)
fin>>v[i];
int ls=1,ld=0;
for(i=1;i<k;++i)
{
while(ls<=ld && v[i]<=v[deque[ld]])
--ld;
deque[++ld]=i;
}
int minim=-30001, st;
for(i=k;i<=n;++i)
{
while(ls<=ld && v[i]<=v[deque[ld]])
--ld;
deque[++ld]=i;
while(ls<=ld && deque[ls]<i-k+1)
++ls;
if(v[deque[ls]]>minim)
{
minim=v[deque[ls]];
st=i;
}
}
fout<<st-k+1 <<" " <<st <<" " <<minim;
return 0;
}