20250416
/* *도움말
50 23 54 24 123 에서
23, 24, 50, 54, 123 순서로 0, 1, 2, 3, 4 가 된다.
그리고 원래의 위치대로 출력한다. */
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int ju;
int noju;
}jung;
int arr[50001];
int bs(int s,int e,int r)
{
printf("%d %d\n",s,e);
int mid=(s+e)/2;
if(s==e)
{
return mid;
}
else if(arr[mid]>r)
{
return bs(mid+1,e,r);
}
else
{
return bs(s,mid-1,r);
}
}
int compare(int* pa,int* pb)
{
if(*pa > *pb)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int n,i,index,k,j;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
qsort(arr,n,sizeof(int),compare);
for(i=0;i<n;i++)
{
printf("%d ",arr[i]);
//arr[i]=i;
}
printf("정렬됨");
printf("\n");
for(i=0;i<n;i++)
{
index=bs(0,n-1,arr[i]);
printf("%d \n",index);
}
return 0;
}
//5
//50 23 54 24 123
//
//23 24 50 54 123
//
//2 0




