Pagini recente » Cod sursa (job #751510) | Cod sursa (job #3190485) | Cod sursa (job #697693) | Cod sursa (job #1763975) | Cod sursa (job #657268)
Cod sursa(job #657268)
#include <fstream>
#include <deque>
using namespace std;
ifstream fi("secventa.in");
ofstream fo("secventa.out");
int N,K,i;
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++)
{
if (D.empty())
D.push_back(i);
else
{
while (!D.empty() && X[D.back()]>=X[i])
D.pop_back();
D.push_back(i);
while (!D.empty() && i-D.front()>=K)
D.pop_front();
if (X[D.front()]>rez)
{
rez=X[D.front()];
st=D.front();
dr=D.back();
}
}
}
fo<<st<<" "<<dr<<" "<<rez;
fi.close();
fo.close();
return 0;
}