You are on page 1of 2

#include<stdio.

h>
#include<malloc.h>
int search(int *width,int n,int i,int j){
int min=0,max=n,mid,index=-1;
mid=(n/2);
while(max>=mid){
if(*(width+mid)>i){
max = mid-1;
mid = (max+min)/2;
}
else if(*(width+mid)<i){
min = mid+1;
mid = (max+min)/2;
}
else{
return 1;
}
}
printf("%d----",mid);
if(*(width+mid+1)>=i && *(width+mid+1)<=j) return 1;
return 0;

}
int main(){
int N,T,w1_cnt=0,w2_cnt=0,w3_cnt=0,w,i,j;
scanf("%d %d",&N,&T);
int *width1,*width2,*width3;
width1 = (int *)malloc(N * sizeof (int));
width2 = (int *)malloc(N * sizeof (int));
width3 = (int *)malloc(N * sizeof (int));
for(int k=0;k<N;k++){
scanf("%d",&w);
switch(w){
case 1:
*(width1+w1_cnt++)=k;
break;
case 2:
*(width2+w2_cnt++)=k;
break;
case 3:
*(width3+w3_cnt++)=k;
break;
}
}
width1 = realloc(width1,w1_cnt);
width2 = realloc(width2,w2_cnt);
width3 = realloc(width3,w3_cnt);
for(i=0;i<w1_cnt;i++){
printf("%d",*(width1+i));
}
scanf("%d %d",&i,&j);
if(search(width1,w1_cnt-1,i,j)){
printf("1\n");
//continue;
}
/*for(int k=0;k<T;k++){
scanf("%d %d",&i,&j);
if(search(width1,w1_cnt,i,j)){
printf("1\n");
continue;
}
if(search(width2,w2_cnt,i,j)){
printf("2\n");
continue;
}
else{
printf("3\n");
}
}*/
return 0;
}

You might also like