Pagini recente » Cod sursa (job #3144288) | Cod sursa (job #809704) | Cod sursa (job #393688) | Cod sursa (job #770322) | Cod sursa (job #659298)
Cod sursa(job #659298)
#include <fstream>
#include <deque>
using namespace std;
ifstream fi("secventa.in");
ofstream fo("secventa.out");
int N,K,i;
int v1,v2;
int X[500001];
deque <int> D;
deque <int> :: iterator it;
int st,dr;
int rez;
int main()
{
fi>>N>>K;
for (i=1;i<=N;i++)
fi>>X[i];
rez=-100000;
for (i=1;i<=N;i++)
{
while (!D.empty() && i-D.front()>=K)
D.pop_front();
while (!D.empty() && X[D.back()]>X[i])
D.pop_back();
if (D.empty() || (!D.empty() && X[D.back()]<=X[i]))
D.push_back(i);
v1=D.front();
v2=D.back();
if (X[D.front()]>rez && i-D.front()+1>=K)
{
rez=X[D.front()];
st=D.front();
dr=i;
}
}
fo<<st<<" "<<dr<<" "<<rez;
fi.close();
fo.close();
return 0;
}