Pagini recente » Cod sursa (job #1457712) | Cod sursa (job #2334456) | Cod sursa (job #1709656) | Cod sursa (job #739899) | Cod sursa (job #268927)
Cod sursa(job #268927)
#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[100010],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;
}