/*#include<stdio.h>
typedef struct
{
char name[11],d;
int c;
}exam;
int main()
{
int x,y=0,z=0,i,j,sec=0;
exam arr[101]={0},arf[106],temp;
scanf("%d",&x);
for(i=1; i<=x; i++)
{
scanf("\n%c %d %s",&arr[i].d,&arr[i].c,arr[i].name);
sec=arr[i].c;
if(arr[i].d=='D')
{
arr[i].c=-1;
}
for(j=1; j<i; j++)
{
if(arr[j].c==sec)
{
arr[i].c=-1;
if(arr[i].d=='D')
{
arr[j].c=-1;
}
else
{
break;
}
}
}
}
for(i=1; i<=x; i++)
{
if(arr[i].c!=-1)
{
arf[++z]=arr[i];
}
}
for(i=1; i<=5; i++)
{
scanf("%d",&y);
arf[100+i]=arf[y];
}
for(i=1; i<=5; i++)
{
for(j=101; j<=106-i; j++)
{
if (arf[j].c < arf[j+1].c)
{
temp = arf[j];
arf[j] = arf[j+1];
arf[j+1] = temp;
}
}
printf("%d %s\n",arf[106-i].c,arf[106-i].name);
}
}
*/
/*
#include<stdio.h>
typedef struct
{
int a,b,c;
}test;
int main()
{
int x,y,z,i,j;
test arr[1001],temp;
scanf("%d",&x);
for(i=1; i<=x; i++)
{
scanf("%d %d",&arr[i].b,&arr[i].c);
arr[i].a=i;
}
for(i=1; i<x; i++)
{
for(j=1; j<=x-i; j++)
{
if(arr[j].b<arr[j+1].b)
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
else if(arr[j].b==arr[j+1].b&&arr[j].c<arr[j+1].c)
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(i=1; i<=x; i++)
{
printf("%d %d %d\n",arr[i].a,arr[i].b,arr[i].c);
}
}
이진 탐색 ( binary search )
-> 정렬이 되어있는 경우에만!
50개의 데이터에서 내가 원하는 수가 있는지? 찾고
50 -> 25 -> 12 -> 6 -> 3 -> 1
s mid e
*/
#include<stdio.h>
int arr[50]={};
void bs(int s, int e, int k) // arr[s] ~ arr[e] 에서 k값의 위치 리턴
{
if(s>e)
{
printf("-1 ");
}
int mid = (s+e)/2;
if(arr[mid]==k)
{
printf("%d ",mid);
}
else if(arr[mid]<k)
{
bs(mid+1,e,k);
}
else
{
bs(s,mid-1,k);
}
}
int main()
{
int x,y,z,i;
scanf("%d",&x);
for(i=1; i<=x; i++)
{
scanf("%d",&arr[i]);
}
scanf("%d",&y);
for(i=1; i<=y; i++)
{
scanf("%d",&z);
bs(1,arr[x],z);
}
return 0;
}