Pagini recente » Istoria paginii utilizator/licavraja | Cod sursa (job #1574373) | Cod sursa (job #617439) | Istoria paginii runda/pregatire/clasament | Cod sursa (job #121391)
Cod sursa(job #121391)
#include <stdio.h>
int main()
{
int max,min,na,p,p1,p2,i,j,k,n;
int a[500001];
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d %d",&n,&k);
for (i=1; i<=n; i++)
scanf("%d",&a[i]);
min=31000;na=0;
for (i=1; i<=k; i++)
if (a[i]<min)
{
min=a[i];
na=1;
}
else if (a[i]==min) na++;
max=min;p1=1;p2=k;
for (p=k+1; p<=n; p++)
{
if (a[p]<min)
{
min=a[p];
na=1;
}
else
if (a[p-k]==min)
{
na--;
if (na==0)
{
min=30001;
for (j=p-k+1; j<=p; j++)
if (a[j]<min)
{
min=a[j];
na=1;
}
else if (a[j]==min) na++;
}
if (min>max)
{
max=min;
p1=p-k+1;
p2=p;
}
}
}
for (i=p1-1; i>=1; i--)
if (a[i]<max) break;
p1=i+1;
for (j=p2+1; j<=n; j++)
if (a[j]<max) break;
p2=j-1;
printf("%d %d %d\n",p1,p2,max);
return 0;
}