/*
#include <stdio.h>
int a[1000001];
int bs(int s,int e,int k)
{
int mid=(s+e)/2;
if(s>e)
{
return -1;
}
if(a[mid]==k)
{
return mid+1;
}
else if(a[mid]<k)
{
bs(mid+1,e,k);
}
else
{
bs(s,mid-1,k);
}
}
int main()
{
int n,i,m,x;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%d",&x);
printf("%d ",bs(0,n-1,x));
}
return 0;
}
1 3 5 7 7 7 7 7 7
*/
/*
#include <stdio.h>
int a[100001];
int bs(int s, int e, int k)
{
int mid=(s+e)/2;
if(s==e) return mid;
if(a[mid]>=k)
{
bs(s,mid,k);
}
else if(a[mid]<k)
{
bs(mid+1,e,k);
}
}
int main()
{
int n,i,f;
scanf("%d",&n);
scanf("%d",&f);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
if(a[n-1]<f)
{
printf("%d",n+1);
}
else
{
printf("%d",bs(0,n-1,f)+1);
}
return 0;
}
*/
/*
#include <stdio.h>
int a[50001];
int bs(int s,int e,int k)
{
int mid=(s+e)/2;
if(s>e)
{
return -1;
}
if(a[mid]==k)
{
return mid;
}
else if(a[mid]<k)
{
bs(mid+1,e,k);
}
else
{
bs(s,mid-1,k);
}
}
int qs(int s, int e) // arr[s] ~ arr[e]를 퀵정렬 하라
{
int p = s; //맨 처음 값을 기준으로 잡는다
int low=s, high=e+1,temp;
do
{
do
{
low++;
}
while(a[p]>a[low]);
do
{
high--;
}
while(a[p]<a[high]);
if(low<high)
{
temp=a[low];
a[low]=a[high];
a[high]=temp;
}
}
while(low<high);
temp=a[p];
a[p]=a[high];
a[high]=temp;
if(s<high-1)
qs(s,high-1);
if(high+1<e)
qs(high+1,e);
}
a[]
0 1 2 3 4
50 23 54 24 123
b[]
0 1 2 3 4
23 24 50 54 123
b배열에서 a[i]의 위치
2 0 3 1 4
int b[50001]={};
int main()
{
int n,i;
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
b[i]=a[i];
}
qs(0,n-1);
for(i=0;i<n;i++)
{
printf("%d ",bs(0,n-1,b[i]));
}
return 0;
}
*/



