Pagini recente » Cod sursa (job #732786) | Cod sursa (job #2148021) | Cod sursa (job #57460) | Cod sursa (job #1227596) | Cod sursa (job #3226531)
#include <bits/stdc++.h>
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
long long i,n,v[500005],k,S,Max,dr,nrf,Maxnrf;
deque<int>q;
int main()
{
f>>n >>k;
for(i=1;i<=n;i++)f>>v[i];
for(i=1;i<=k;i++)
{
while(!q.empty() && v[q.back()]>=v[i])q.pop_back();
q.push_back(i);
if(i-k>=q.front())q.pop_front();
}
int nr=v[q.front()];
if(nr>Max)
{
Max=nr;
dr=i;
}
for(i=k+1;i<=n;i++)
{
while(!q.empty() && v[q.back()]>=v[i])q.pop_back();
q.push_back(i);
if(i-k>=q.front())q.pop_front();
nr=v[q.front()];
if(nr>Max)
{
Max=nr;
dr=i;
nrf++;
}
else if(nr==Max)break;
}
g<<dr-k+1<<" "<<dr<<" "<<Max;
}