Cho dãy số nguyên 𝐴 gồm 𝑁 phần tử phân biệt 𝑎1, 𝑎2, , 𝑎𝑁.
Yêu cầu: Gồm 𝑄 câu hỏi, mỗi câu hỏi là một số nguyên 𝑥 và nhiệm vụ của bạn là in ra vị trí của
số nguyên 𝑥 trên dãy 𝐴 hoặc in ra 0 nếu số nguyên 𝑥 không tồn tại trên dãy.
Input:
Dòng đầu tiên gồm một số nguyên dương 𝑁 (𝑁 105);
Dòng thứ hai là 𝑁 số nguyên phân biệt 𝑎1, 𝑎2, , 𝑎𝑁 (|𝑎𝑖
| 109);
Dòng thứ ba là một số nguyên dương 𝑄 (𝑄 105);
𝑄 dòng tiếp theo, mỗi dòng là một số nguyên 𝑥 (|𝑥| 109).
Output: Gồm 𝑄 dòng, mỗi dòng là vị trí của số nguyên 𝑥 tương trên dãy 𝐴 hoặc in ra 0 nếu giá
trị 𝑥 không tồn tại trên dãy.
Ví dụ:
IBS1304C.INP IBS1304C.OUT
7
-1 4 2 7 -6 -3 9
4
2
5
-6
9
3
0
5
7
cho mình hỏi sai ở đâu ạ
#include <bits/stdc++.h>
using namespace std;
long long a[10000000],b[100000000];
int tknp(long long a[],long long l,long long r,long long x)
{if(l>r) return 0;
long long mid=(l+r)/2;
if(a[mid]==x) return mid;
else if(a[mid]>x) return tknp(a,l,mid-1,x);
else if(a[mid]<x) return tknp(a,mid+1,r,x);}
int main()
{ long long n,d,i,c=0,j;
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
cin>>d;
for(i=1;i<=d;i++)
cin>>b[i];
for(i=1;i<=d;i++)
cout<<tknp(a,1,n,b[i])<<endl;}