Language: C++

#include <iostream>
#include <complex>
using namespace std;
#define P complex<int>
//#define P complex<double>
#define EPS 1e-4
#define DEBUG false

int an,bn,r;
P a[10000], b;

int searchX(int lb, int ub, int search ){ // ( -1,an )
  while( ub-lb>1 ){
    int mid = (lb+ub)/2;
    if( a[mid].real() >=search ) ub=mid;
    else                         lb=mid;
  }
  return ub;
}
int searchY( int lb, int ub, int search ){
  while( ub-lb>1 ){
    int mid=(lb+ub)/2;
    if( a[mid].imag() >= search ) ub=mid;
    else                          lb=mid;
  }
  return ub;
}

int main(){

  while( cin>>an>>bn>>r && (an||bn) ){
    for( int i=0;i<an;i++ )
      cin >> a[i].real() >> a[i].imag();

    bool flag;
    do{
      flag=false;
      for( int i=1;i<an;i++ ){
	if( a[i-1].real() > a[i].real() ||
	    (a[i-1].real()==a[i].real() && a[i-1].imag() > a[i].imag() )){
	  P p=a[i-1]; a[i-1]=a[i]; a[i]=p;
	  flag=true;
	}
      }
    }while( flag );

    if( DEBUG )
      for( int i=0;i<an;i++ )
	cout << i << " " << a[i] << endl;

    int ans=0;
    for( int i=0;i<bn;i++ ){
      cin >> b.real() >> b.imag();
      if( DEBUG )
	cout << "b: "<<b << endl;
     
      // a[lb] ~ a[ub-1] の範囲で　a[.].real()=search となる
      int lb = searchX( -1,an, b.real()-4*r   );
      int ub = searchX( lb,an, b.real()+4*r+1 );
    
      int j   = searchY( lb,ub, b.imag()-4*r   );
      int end = searchY( j ,ub, b.imag()+4*r+1 );
      if( DEBUG )
	cout << " lb="<<lb << " ub=" << ub 
	     << " j="<< j << " end=" << end << endl;
      for( ; j<end;j++ ){
	if( abs(a[j]-b) - 4.0*r < EPS )
	  ans++;
      }
    }
    cout << ans << endl;

  }

  return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:33:11: error: no match for 'operator>>' (operand types are 'std::istream' {aka 'std::basic_istream<char>'} and 'int')
   33 |       cin >> a[i].real() >> a[i].imag();
      |       ~~~ ^~ ~~~~~~~~~~~
      |       |               |
      |       |               int
      |       std::istream {aka std::basic_istream<char>}
In file included from /usr/include/c++/14/iostream:42,
                 from a.cc:1:
/usr/include/c++/14/istream:170:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  170 |       operator>>(bool& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:170:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: cannot bind non-const lvalue reference of type 'bool&' to a value of type 'int'
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
/usr/include/c++/14/istream:174:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]' (near match)
  174 |       operator>>(short& __n);
      |       ^~~~~~~~
/usr/include/c++/14/istream:174:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: cannot bind non-const lvalue reference of type 'short int&' to a value of type 'int'
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
/usr/include/c++/14/istream:177:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  177 |       operator>>(unsigned short& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:177:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: cannot bind non-const lvalue reference of type 'short unsigned int&' to a value of type 'int'
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
/usr/include/c++/14/istream:181:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]' (near match)
  181 |       operator>>(int& __n);
      |       ^~~~~~~~
/usr/include/c++/14/istream:181:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: cannot bind non-const lvalue reference of type 'int&' to an rvalue of type 'int'
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
/usr/include/c++/14/istream:184:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  184 |       operator>>(unsigned int& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:184:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: cannot bind non-const lvalue reference of type 'unsigned int&' to a value of type 'int'
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
/usr/include/c++/14/istream:188:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  188 |       operator>>(long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:188:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: cannot bind non-const lvalue reference of type 'long int&' to a value of type 'int'
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
/usr/include/c++/14/istream:192:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  192 |       operator>>(unsigned long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:192:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: cannot bind non-const lvalue reference of type 'long unsigned int&' to a value of type 'int'
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
/usr/include/c++/14/istream:199:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  199 |       operator>>(long long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:199:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: cannot bind non-const lvalue reference of type 'long long int&' to a value of type 'int'
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
/usr/include/c++/14/istream:203:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  203 |       operator>>(unsigned long long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:203:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: cannot bind non-const lvalue reference of type 'long long unsigned int&' to a value of type 'int'
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
/usr/include/c++/14/istream:219:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  219 |       operator>>(float& __f)
      |       ^~~~~~~~
/usr/include/c++/14/istream:219:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: cannot bind non-const lvalue reference of type 'float&' to a value of type 'int'
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
/usr/include/c++/14/istream:223:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  223 |       operator>>(double& __f)
      |       ^~~~~~~~
/usr/include/c++/14/istream:223:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: cannot bind non-const lvalue reference of type 'double&' to a value of type 'int'
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
/usr/include/c++/14/istream:227:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  227 |       operator>>(long double& __f)
      |       ^~~~~~~~
/usr/include/c++/14/istream:227:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: cannot bind non-const lvalue reference of type 'long double&' to a value of type 'int'
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
/usr/include/c++/14/istream:328:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  328 |       operator>>(void*& __p)
      |       ^~~~~~~~
/usr/include/c++/14/istream:328:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: invalid conversion from 'int' to 'void*' [-fpermissive]
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
      |                       |
      |                       int
a.cc:33:23: error: cannot bind rvalue '(void*)((long int)a[i].std::complex<int>::real())' to 'void*&'
/usr/include/c++/14/istream:122:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(__istream_type& (*)(__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  122 |       operator>>(__istream_type& (*__pf)(__istream_type&))
      |       ^~~~~~~~
/usr/include/c++/14/istream:122:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: invalid conversion from 'int' to 'std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&)' {aka 'std::basic_istream<char>& (*)(std::basic_istream<char>&)'} [-fpermissive]
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
      |                       |
      |                       int
/usr/include/c++/14/istream:126:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(__ios_type& (*)(__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>; __ios_type = std::basic_ios<char>]' (near match)
  126 |       operator>>(__ios_type& (*__pf)(__ios_type&))
      |       ^~~~~~~~
/usr/include/c++/14/istream:126:7: note:   conversion of argument 1 would be ill-formed:
a.cc:33:23: error: invalid conversion from 'int' to 'std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&)' {aka 'std::basic_ios<char>& (*)(std::basic_ios<char>&)'} [-fpermissive]
   33 |       cin >> a[i].real() >> a[i].imag();
      |              ~~~~~~~~~^~
      |                       |
      |                       int
/usr/inclu