#1-WA,#6-TLE
查看原帖
#1-WA,#6-TLE
947202
wangruize88楼主2024/9/8 11:13
#include <stdio.h>
int n , m , q , a[1000001] ;
int find ( int x ) {
	int l = 1 , r = n ;
	while ( l <= r ) {
		int mid = (l+r)>>1 ;
		if ( a[mid] == x ) return mid ;
		else if ( a[mid] < x ) l = mid+1 ;
		else r = mid-1 ;
	}
	return -1 ;
}
int main () {
	scanf ( "%d%d" , &n , &m ) ;
	for ( int i = 1 ; i <= n ; i++ ) scanf ( "%d" , &a[i] ) ;
	while ( m-- ) {
		scanf ( "%d" , &q ) ;
		int i = find( q ) ;
		if ( i != -1 ) while( a[i-1] == a[i] ) i-- ;
		printf ( "%d " , i ) ;
	}
	return 0 ;
}
2024/9/8 11:13
加载中...