1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| #include<bits/stdc++.h> #define maxn 1000000+10 #define f_u(a,b) for(register int i=a;i<=b;++i) #define f_d(a,b) for(register int i=a;i>=b;--i) #define F_u(a,b) for(register int j=a;j<=b;++j) #define F_d(a,b) for(register int j=a;j>=b;--j) using namespace std; inline int read(){register char c=getchar();register int x=0,s=1; while(c<'0'||c>'9'){if(c=='-')s=-1;c=getchar();}while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();}return x*s;} inline void write(int x){if(x<0)putchar('-'),x=-x;if(x>9)write(x/10);putchar(x%10+'0');} int n,m,a[maxn]; int zhong_fen(int k){ register int l=1,r=n,mid; while(l<r){ mid=(l+r)/2; if(a[mid]>=k){ r=mid; } else{ l=mid+1; } } if(a[l]!=k) return -1; return l; } int main(){
n=read(),m=read(); f_u(1,n) a[i]=read(); f_u(1,m){ register int tmp=read(); cout<<zhong_fen(tmp)<<' '; } cout<<endl; return 0; }
|