Pagini recente » Cod sursa (job #367881) | Cod sursa (job #1349813) | Cod sursa (job #268919)
Cod sursa(job #268919)
#include<stdio.h>
void minim(int secv[500010],long k,int &min,long &minnr)
{
long i;
min=secv[1];
minnr=1;
for(i=2;i<=k;i++)
if(min>secv[i])
{min=secv[i];minnr=1;}
else if(min==secv[i])
minnr++;
}
int main()
{
FILE *fi,*fo;
fi=fopen("secventa.in","r");
fo=fopen("secventa.out","w");
int min=-32000,nr,secv[500010],maxmin;
long n,k,i,minnr,mins=1,exit=1;
fscanf(fi,"%ld %ld",&n,&k);
for(i=1;i<=k;i++)fscanf(fi,"%d",&secv[i]);
minim(secv,k,min,minnr);
maxmin=min;
for(i=k+1;i<=n;i++)
{
fscanf(fi,"%d",&nr);
if(secv[exit]==min)
{
if(minnr==1)
{
secv[exit]=nr;
exit=(exit!=k)?exit+1:1;
minim(secv,k,min,minnr);
if(min>maxmin)
{
maxmin=min;
mins=i-k+1;
}
}
else
{
minnr--;
secv[exit]=nr;
exit=(exit!=k)?exit+1:1;
}
}
else
{
secv[exit]=nr;
exit=(exit!=k)?exit+1:1;
}
}
fprintf(fo,"%ld %ld %d",mins,mins+k-1,maxmin);
return 0;
}