Pagini recente » Cod sursa (job #2925310) | Cod sursa (job #3204510) | Cod sursa (job #3242086) | Cod sursa (job #751209) | Cod sursa (job #976202)
Cod sursa(job #976202)
#include<stdio.h>
#include<deque>
using namespace std;
deque<short int>d;
short int v[500004];
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
unsigned n,k,i,j;
short int m;
scanf("%u%u",&n,&k);
for(i=1;i<=k;i++)
{
scanf("%hd",&v[i]);
while(!d.empty())
{
if(v[i]>d.back())
break;
d.pop_back();
}
d.push_back(v[i]);
}
m=d.front();
j=k;
for(i=k+1;i<=n;i++)
{
scanf("%hd",&v[i]);
if(d.size()==k)
d.pop_front();
while(!d.empty())
{
if(v[i]>d.back())
break;
d.pop_back();
}
d.push_back(v[i]);
if(d.front()>m)
{
m=d.front();
j=i;
}
}
while(j!=0 && v[j]>=m)
j--;
n++;
while(i!=n && v[i]>=m)
i++;
j++;
i--;
printf("%u %u %hd\n",j,i,m);
return 0;
}