/*
//doubly linked list
#include <stdio.h>
struct dnode
{
int data;
struct dnode* prev;
struct dnode* next;
};
void printList(struct dnode* p)
{
printf("list>> ");
while(p!=NULL)
{
printf("%d ->",p->data);
p=p->next;
}
printf("\n");
}
int main()
{
struct dnode head,n1,n2,n3,n4;
n1.data=1;
n2.data=2;
n3.data=3;
n4.data=4;
//head->n1->n2->n3 연결하기
head.next=&n1;
n1.prev=&head;
n1.next=&n2;
n2.prev=&n1;
n2.next=&n3;
n3.prev=&n2;
n3.next=NULL;
printList(head.next);
//head와 n1 사이 (리스트의 맨 앞에) n4 삽입하기
n4.next=head.next;
n4.prev=&head;
n4.next->prev=&n4;
head.next=&n4;
printList(head.next);
//맨 앞 노드 삭제하기
head.next=head.next->next;
head.next->prev=&head;
printList(head.next);
}
*/
/*
#include <stdio.h>
long long solution(int a, int b) {
long long answer = 0;
for (int i=a;i<=b;i++)
{
a+b;
}
for (int i=b;i<=a;i++)
{
b+a;
}
return answer;
}
*/
/*
//이진탐색
#include <stdio.h>
int arr[6]={0,1,3,7,10,15};
void bs(int data,int b,int e)
{
int m=(b+e)/2;
if(arr[m]<data) bs(data,m+1,e);
else if(arr[m]>data) bs(data,b,m-1);
else {
printf("%d번째에 있습니다",m);
return ;
}
}
int main()
{
bs(7,1,5);
}
*/
#include <stdio.h>
int arr[100000]={};
void bs(int data,int b,int e)
{
int n=(b+e)/2;
if(arr[n]<data)
{
bs(data,n+1,e);
}
else if (arr[n]>data)
{
bs(data,b,n-1);
}
else
{
printf ("%d",n);
return ;
}
}