Pagini recente » Cod sursa (job #211055) | Cod sursa (job #121595) | Cod sursa (job #2159364) | Cod sursa (job #729897) | Cod sursa (job #1489055)
#include <stdio.h>
using namespace std;
FILE*fin=fopen("secventa.in","r");
FILE*fout=fopen("secventa.out","w");
int v[500000];
int minim(int i, int j)
{
int poz=i;
for(int k=i+1; k<=j; k++)
if(v[k]<v[poz])
poz=k;
return poz;
}
int main()
{
int n,k,i,start,poz,secv,lg,ok;
fscanf(fin,"%d %d",&n,&k);
for(int i=1; i<=n; i++)
fscanf(fin,"%d",&v[i]);
poz=minim(1,k);
secv=start=1; lg=k;
for(i=k+1; i<=n; i++)
{
ok=0;
if(v[i]>v[poz])
ok=1;
if(ok==1)
{
if(i-poz==k)
poz=minim(poz+1,poz+k);
if(lg==k)
{
start++;
secv=start;
}
else
lg++;
}
else
{
start=i;
if(v[i]<=v[poz])
lg=0;
else
lg++;
}
}
if(lg==k)
{
start++;
secv=start;
}
fprintf(fout,"%d %d %d\n",secv,secv+k-1,v[poz]);
return 0;
}