Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<iostream>
- #include<algorithm>
- using namespace std;
- typedef long long int ll;
- int Bsearch(int l,int r,ll key,pair<ll,int> arr[]){
- int m = (l+r)/2;
- if(arr[m].first == key){
- int j = m;
- while(arr[j-1].first == key){
- j--;
- }
- return arr[j].second;
- }
- if(l > r)return -1;
- if(arr[m].first > key){
- return Bsearch(l,m-1,key,arr);
- }else{
- return Bsearch(m+1,r,key,arr);
- }
- }
- int main()
- {
- int n;
- scanf("%d",&n);
- pair<ll,int> arr[n+1];arr[0] = {-2e9,0};
- for(int i=1;i<=n;i++){
- ll x;
- scanf("%lld",&x);
- arr[i] = {x,i};
- }
- sort(arr+1,arr+n+1);
- ll m;
- scanf("%lld",&m);
- for(int i=0;i<m;i++){
- ll key;
- scanf("%lld",&key);
- int index = Bsearch(1,n,key,arr);
- if(index != -1){
- printf("%d\n",index);
- }else{
- printf("Not found\n");
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment