Pagini recente » Cod sursa (job #2814732) | Cod sursa (job #1385883) | Cod sursa (job #2999879) | Cod sursa (job #1650502) | Cod sursa (job #1257047)
#include<fstream>
#include<deque>
#define NMAX 500010
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
int n, k, a[NMAX];
deque<int> dq;
void citeste()
{
f>>n>>k;
for (int i=1; i<=n; ++i) f>>a[i];
}
void rezolva()
{
int maxim=-30001, maximStart;
for (int i=1; i<=n; ++i)
{
if (!dq.empty() && dq.front()==i-k) dq.pop_front();
while (!dq.empty() && a[dq.back()]>=a[i]) dq.pop_back();
dq.push_back(i);
if (a[dq.front()]>maxim && i>=k)
{
maxim=a[dq.front()];
maximStart=dq.front();
}
}
g<<maximStart<<" "<<maximStart+k-1<<" "<<maxim<<"\n";
}
int main()
{
citeste();
rezolva();
return 0;
}