////////////#include <stdio.h>
//////
////////////typedef struct
//////
////////////{
//////
//////////// char name[1000];
//////
//////////// int score;
//////
////////////}STD;
//////
////////////int main()
//////
////////////{
//////
//////////// STD arr[1000]={};
//////
//////////// int n;
//////
//////////// scanf("%d",&n);
//////
//////////// for (int i=0 ; i<n ; i++) {
//////
//////////// scanf("%s %d",arr[i].name,&arr[i].score);
//////
//////////// }
//////
//////////// for (int i=0 ; i<n ; i++) {
//////
//////////// for (int j=0 ; j<n-i ; j++) {
//////
//////////// if (arr[j].score<arr[j+1].score) {
//////
//////////// STD k = arr[j];
//////
//////////// arr[j]=arr[j+1];
//////
//////////// arr[j+1]=k;
//////
//////////// }
//////
//////////// }
//////
//////////// }
//////
////////////// for (int i=0 ; i<n ; i++) {
//////
////////////// printf("%d\n",arr[2].score);
//////
////////////// }
//////
//////////// printf("%s",arr[2].name);
//////
////////////}
//////
//////////
//////
//////////
//////
//////////
//////
//////////#include <stdio.h>
//////
//////////typedef struct
//////
//////////{
//////
////////// int s;
//////
////////// int j;
//////
////////// int l;
//////
//////////}STD;
//////
//////////
//////
//////////int main()
//////
//////////{
//////
////////// int n;
//////
////////// STD arr[1001]={};
//////
////////// scanf("%d",&n);
//////
////////// for (int i=1 ; i<=n ; i++) {
//////
////////// scanf("%d %d",&arr[i].s,&arr[i].j);
//////
////////// arr[i].l=i;
//////
////////// }
//////
////////// for (int i=1 ; i<=n ; i++) {
//////
////////// for (int j=1 ; j<=n-(i-1) ; j++) {
//////
////////// if (arr[j].s < arr[j+1].s) {
//////
////////// STD k=arr[j];
//////
////////// arr[j]=arr[j+1];
//////
////////// arr[j+1]=k;
//////
////////// }
//////
////////// else if (arr[j].s==arr[j+1].s) {
//////
////////// if (arr[j].j<arr[j+1].j) {
//////
////////// STD k=arr[j];
//////
////////// arr[j]=arr[j+1];
//////
////////// arr[j+1]=k;
//////
////////// }
//////
////////// }
//////
////////// }
//////
////////// }
//////
////////// for (int i=1 ; i<=n ; i++) {
//////
////////// printf("%d %d %d\n",arr[i].l,arr[i].s,arr[i].j);
//////
////////// }
//////
//////////}
//////
//////////
//////
//////////
//////
////////
//////
////////#include <stdio.h>
//////
////////int n,i,j;
//////
////////typedef struct
//////
////////{
//////
//////// char name[1000];
//////
//////// int y;
//////
//////// int m;
//////
//////// int d;
//////
//////// int total;
//////
////////}SC;
//////
////////SC arr[1001]={};
//////
////////int main()
//////
////////{
//////
//////// scanf("%d",&n);
//////
//////// for (i=0 ; i<n ; i++) {
//////
//////// scanf("%s %d %d %d",arr[i].name,&arr[i].y,&arr[i].m,&arr[i].d);
//////
//////// arr[i].total=(arr[i].y*10000)+(arr[i].m*100)+arr[i].d;
//////
//////// }
//////
////////
//////
//////// for (i=0 ; i<n ; i++) {
//////
//////// for (j=0 ; j<n-1 ; j++) {
//////
//////// if (arr[j].total>arr[j+1].total) {
//////
//////// SC k=arr[j];
//////
//////// arr[j]=arr[j+1];
//////
//////// arr[j+1]=k;
//////
//////// }
//////
//////// else if (arr[j].total==arr[j+1].total) {
//////
//////// int ret = strcmp(arr[j].name,arr[j+1].name);
//////
//////// if (ret>0) {
//////// SC k=arr[j];
//////// arr[j]=arr[j+1];
//////// arr[j+1]=k;
//////// }
//////// }
//////// }
//////// }
//////// for (i=0 ; i<n ; i++) {
//////// printf("%s\n",arr[i].name);
//////// }
////////}
////////버블
////////선택
////////삽입 ( 데이터가 어느정도 정렬이 되어있을때, 빠르다 )
////////[정렬된 배열] [정렬할숫자]
////////
////////key =2;
////////
////////[1 3 4 5] 2
////////[1 2 3 4 5]
///////*
//////5 1 4 2 3
//////
//////round 2) key=1;
//////[5] 1 4 2 3
//////[1 5] 4 2 3
//////round 3) key=4;
//////[1 5] 4 2 3
//////[1 4 5] 2 3
//////round 4) key=2;
//////[1 4 5] 2 3
//////[1 2 4 5] 3
//////
//////round 5) key=3;
//////[1 2 4 5] 3
//////[1 2 3 4 5]
//////*/
///////*
//////#include <stdio.h>
//////int main()
//////{
////// int n,j,i,arr[100]={};
////// scanf("%d",&n);
////// for (int i=0 ; i<n ; i++) {
////// scanf("%d",&arr[i]);
////// }
////// for (i=1 ; i<n ; i++) {
////// int k=arr[i];
////// for (j=i-1 ; j>=0 && k<arr[j] ; j--) {
////// arr[j+1]=arr[j];
////// }
////// arr[j+1]=k;
////// }
////// for (int i=0 ; i<n ; i++) {
////// printf("%d\n",arr[i]);
////// }
////// return 0;
//////}
//////quick sort (재귀함수사용)
//////pivot 기준값 -> 기준값보다 작은수들 ... 기준값... 기준값보다 큰수들
//////
//////qsort(a,7,sizeof(int),compare);
//////#include <stdio.h>
//////
//////int a[7]={0,5,7,3,10,2,1};
//////void qs(int s, int e) // a[s] ~ a[e] 를 퀵정렬해라
//////{
////// if(s>=e) return ; // 종료조건
////// int p = s; //기준값
////// int left = s+1;
////// int right = e;
//////
////// while(left<right)
////// {
////// while(a[left]<a[p])
////// {
////// left++;
////// }
////// while(a[right]>a[p])
////// {
////// right--;
////// }
////// if(left<right)
////// {
////// int k=a[left];
////// a[left]=a[right];
////// a[right]=k;
////// //a[left] <-> a[right]교환
////// }
////// }
////// //a[p] <-> a[right] 교환
////// int k = a[p];
////// a[p]=a[right];
////// a[right]=k;
//////
////// //a[p]보다 작은숫자들... a[p] ... a[p]보다 큰 숫자들
////// qs(s,right-1);
////// qs(right+1,e);
//////
//////}
//////
//////#include <stdio.h>
//////#include <stdlib.h>
//////
//////int a=10;
//////int* pa = &a;
//////
//////printf("%d",pa); // &a
//////printf("%d",*pa); // a
//////
//////int a[7]={0,5,7,3,10,2,1};
//////
//////int compare(int* pa, int* pb)
//////{
////// //-1 or 0 or 1
////// int x = *pa;
////// int y = *pb;
////// if (x>y) return 1; // x<y일때 바꿔라 오름차순
////// else if(x==y) return 0;
////// else return -1;
//////}
//////
//////int main()
//////{
////// printf("before : \n");
////// for(int i=1;i<=6;i++) printf("%d ",a[i]);
////// printf("\n");
////// // &a[0] -> a
////// //qsort(정렬할배열이름, 정렬할 데이터 갯수, 한 데이터의 크기, 오름차순/내림차순판단함수이름)
////// qsort(&a[1],6,sizeof(int),compare);
//////
////// printf("after : \n");
////// for(int i=1;i<=6;i++) printf("%d ",a[i]);
////// printf("\n");
//////}
//////
//////1452번
//////1. 퀵소트 직접구현.
//////2. 내장퀵정렬 사용.
//////*/
//////
//////
//////#include <stdio.h>
//////#include <stdlib.h>
//////int compare (const int *a,const int *b)
//////{
////// if (*a > *b) {
////// return 1;
////// }
////// else if (*a == *b) {
////// return 0;
////// }
////// else return -1;
//////}
//////int main()
//////{
////// int n;
////// scanf("%d",&n);
////// int arr[100000]={};
////// for (int i=0 ; i<n ; i++) {
////// scanf("%d",&arr[i]);
////// }
////// qsort(arr,n,sizeof(int),compare);
////// for (int i=0 ; i<n ; i++) {
////// printf("%d\n",arr[i]);
////// }
//////}
///*
//#include <stdio.h>
//#include <stdlib.h>
//int main()
//{
// int n,k,arr[100001]={};
// scanf("%d",&n);
// for (int i=0 ; i<n ; i++) {
// scanf("%d",&k);
// arr[k]+=1;
// }
// for (int i=0 ; i<100001 ; i++) {
// for (int j=0; j<arr[i] ; j++) {
// printf("%d\n",i);
// }
// }
//}
//
//정렬 x -> 퀵정렬 -> 이진탐색
// 정렬x -> 순차탐색
//
//1~50
//25 ->
//12 ->
//
//이진탐색 (=이분탐색), binary search
//
//정렬된 배열에서 내가 원하는 데이터 찾기
//
//0 ~ 1000사이 수 100개
//
//int bs(int s, int e, int k) // a[s] ~ a[e] 에서 "k 값의 위치" 리턴, 없으면 -1리턴
//{
// //종료조건
// if (s>e) return -1;
//
// int mid = (s+e)/2;
//
// if(a[mid]==k)
// return mid;
// else if(a[mid]>k)
// return bs(s,mid-1,k);
// else
// return bs(mid+1,e,k);
//
//}
//3002 bs
//2633 bs(변형, 활용)
//3004 qs + bs5
//2 23 55 87 100
//4
//5 2 100 55
//
//*/
//
//
//
//#include <stdio.h>
//int arr[100000]={};
//int bs (int s,int e,int k)
//{
// if (s>e) return -1;
// int m=(s+e)/2;
// if (arr[m]==k) {
// return m+1;
// }
// else if (arr[m]>k) {
// return bs(s,m-1,k);
// }
// else {
// return bs(m+1,e,k);
// }
//}
//int main()
//{
// int n,k,s;
// scanf("%d",&n);
// for (int i=0 ; i<n ; i++) {
// scanf("%d",&arr[i]);
// }
// scanf("%d",&k);
// for (int i=0 ; i<k ; i++) {
// scanf("%d",&s);
// printf("%d ",bs(0,n-1,s));
// }
//}
#include <stdio.h>
int f,n,mid,arr[100000];
int bs (int s,int e)
{
if (s>e) return n+1;
mid = (s+e)/2;
if (arr[mid]==f) {
return mid+1;
}
else if (arr[mid]>f) return bs (s,mid-1);
else return bs(mid+1,e);
}
int main()
{
scanf("%d",&n);
scanf("%d",&f);
for (int i=0 ; i<n ; i++) {
scanf("%d",&arr[i]);
}
printf("%d",bs(0,n-1));
}
////#include <stdio.h>
////int arr[100000]={};
////int f,n,m=999999;
////int bs(int s,int e)
////{
//// int mid = (s+e)/2;
//// if (e-s < 1) {
//// if (f>arr[mid]) return n+1;
//// return mid+1;
////
//// }
//// else if (arr[mid] >= f) {
//// bs(s,mid);
//// }
//// else {
//// bs(mid+1,e);
//// }
////}
////int main()
////{
////
//// scanf("%d %d",&n,&f);
//// for (int i=0 ; i<n ; i++) {
//// scanf("%d",&arr[i]);
//// }
//// printf("%d",bs(0,n-1));
////
////}
////
////
//#include <stdio.h>
//#include <stdlib.h>
//int arr[50000];
//int array[50000];
//int bs (int s,int e,int f)
//{
// if (s>e) return 0;
// int mid=(s+e)/2;
// if (arr[mid]==f) return mid;
// else if (arr[mid]>f) return bs(s,mid-1,f);
// else return bs(mid+1,e,f);
//}
//int compare (int *pa,int *pb)
//{
// int x = *pa;
// int y = *pb;
// if (x>y) return 1;
// else if (x==y) return 0;
// else return -1;
//}
//int main()
//{
// int n;
// scanf("%d",&n);
// for (int i=0 ; i<n ; i++) {
// scanf("%d",&arr[i]);
// array[i]=arr[i];
// }
// qsort(arr,n,sizeof(int),compare);
// for (int i=0 ; i<n ; i++) {
// printf("%d ",bs(0,n-1,array[i]));
// }
//}
////int main()
////{
//// int NULL=NULL;
//// printf(NULL);
////}
#include <stdio.h>
int as(int n)
{
if (n==0) return;
printf
return as(n);
}
int main()
{
int n;
scanf("%d",&n);
as(n);
}
-- 2024 08 31