Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define LL long long
- #define endl "\n"
- using namespace std ;
- //
- template < typename T >
- inline T read( T &x )
- {
- x = 0 ;
- int f = 0 ;
- char ch = getchar() ;
- while( ch < '0' || ch > '9' ) {
- f |= ( ch == '-' ) , ch = getchar() ;
- }
- while( ch >= '0' && ch <= '9' ) {
- x = ( x << 1 ) + ( x << 3 ) + ch - '0' , ch = getchar() ;
- }
- return x = f ? -x:x ;
- }
- //
- int sz ;
- int lobo( int key , int female[] , int L , int R )
- {
- int low = 0 , high = sz-1 , ans = -1 ;
- while( low <= high ) {
- int mid = low + (high-low)/2 ;
- if( female[mid]+key < L ) {
- low = mid+1 ;
- }
- else if( female[mid]+key >= L ) {
- if( female[mid]+key <= R ) {
- ans = mid ;
- }
- high = mid-1 ;
- }
- }
- return ans ;
- }
- int hibo( int key , int female[] , int L , int R )
- {
- int ans = -1 , high = sz-1 , low = 0 ;
- while( low <= high ) {
- int mid = low + (high-low)/2 ;
- if( female[mid] + key > R ) {
- high = mid-1 ;
- }
- else {
- low = mid+1 ;
- if( female[mid]+key >= L ) ans = mid ;
- }
- }
- return ans ;
- }
- void solve( void )
- {
- int N , M ;
- cin >> N >> M ;
- int male[N] ;
- int fe[M] ;
- sz = M ;
- for( int i = 0 ; i < N ; i++ ) cin >> male[i] ;
- for( int i = 0 ; i < M ; i++ ) cin >> fe[i] ;
- int L , R ;
- cin >> L >> R ;
- sort( male , male+N ) ;
- sort( fe , fe + M ) ;
- int cnt = 0 ;
- for( int i = 0 ; i < N ; i++ ) {
- int x = lobo( male[i] , fe , L , R ) ;
- int y = hibo( male[i] , fe , L , R ) ;
- if( x == -1 || y == -1 ) continue ;
- // cout << "male: " << male[i] << " x: " << x << " y: " << y << endl ;
- cnt += (y-x+1) ;
- }
- cout << cnt << endl ;
- }
- int main( void )
- {
- //ios_base::sync_with_stdio( false ) ; cin.tie( NULL ) ; cout.tie( NULL ) ;
- #ifndef ONLINE_JUDGE
- freopen( "input.txt" , "r" , stdin ) ;
- freopen( "output.txt" , "w" , stdout ) ;
- #endif
- if( 0 ) {
- int t = 100 ;
- for( int i = 1 ; i <= t ; i++ ) solve() ;
- }
- else {
- solve() ;
- }
- #ifndef ONLINE_JUDGE
- cout << "\nTime Elapsed: " << 1.0*clock()/CLOCKS_PER_SEC << " sec\n" ;
- #endif
- return 0 ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement