Pagini recente » Borderou de evaluare (job #3357081) | Cod sursa (job #500918) | Cod sursa (job #3343269) | Cod sursa (job #3309336) | Cod sursa (job #1485774)
#include <fstream>
#include <algorithm>
#include <vector>
#include <set>
#include <limits>
#define INF numeric_limits<int>::max()
#define pb push_back
#define mp make_pair
using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");
int n,k,a[500005],dq[500005];
int main()
{
in>>n>>k;
for(int i=1;i<=n;i++)
in>>a[i];
int lf=1,rt=0,mx=-INF,x,y;
for(int i=1;i<=n;i++)
{
while(lf<=rt && a[i]<=a[dq[rt]])rt--;
dq[++rt]=i;
if(dq[lf]==i-k)lf++;
if(i>=k && mx<a[dq[lf]])
{
mx=a[dq[lf]];
x=i-k+1;
y=i;
}
}
out<<x<<' '<<y<<' '<<mx<<'\n';
return 0;
}