Pagini recente » Cod sursa (job #1956834) | Cod sursa (job #1935299) | Cod sursa (job #1661906) | Cod sursa (job #2577104) | Cod sursa (job #1493218)
#include <stdio.h>
#include <stdlib.h>
int v[500000];
int secv[500000];
int creareSecv(int k){
int c,min;
c=0;
while(c<k){
secv[c]=v[c];
c++;
}
c=0;
min=30001;
while(c<k){
if(secv[c]<min){
min=secv[c];
}
c++;
}
return min;
}
int stabilireMin(int k,int max,int c){
int csecv,min;
csecv=1;
min=30001;
while(csecv<k){
if(secv[csecv]<min){
min=secv[csecv];
}
secv[csecv-1]=secv[csecv];
csecv++;
}
secv[k-1]=v[c];
if(secv[k-1]<min){
min=secv[k-1];
}
return min;
}
int main()
{
FILE*fin,*fout;
int n,k,max=-30001,c,inceput,sfarsit,min;
fin = fopen("secventa.in" ,"r");
fscanf(fin, "%d%d" ,&n,&k);
c=0;
while(c<n){
fscanf(fin, "%d" ,&v[c]);
c++;
}
fclose(fin);
max=creareSecv(k);
inceput=1;
sfarsit=k;
c=k;
while(c<n){
min=stabilireMin(k,max,c);
if(min>max){
max=min;
sfarsit=c+1;
inceput=sfarsit-k+1;
}
c++;
}
fout = fopen("secventa.out" ,"w");
fprintf(fout, "%d %d %d\n" ,inceput, sfarsit, max);
fclose(fout);
return 0;
}