Language: C++

#include <iostream>
#include <algorithm>
#include <complex>
#include <vector>
#include <cmath>
using namespace std;
typedef complex<double> P;

const double PI = acos(-1);
const double EPS = 1e-9;
bool hit(P p,double a,double b,double r){
	if( abs(p) > r + EPS ) return false;
	double deg = atan2(p.imag(),p.real());
	if( a <= deg && deg <= b ) return true;
	if( a <= deg+2*PI && deg+2*PI <= b ) return true;
	if( a <= deg-2*PI && deg-2*PI <= b ) return true;
	return false;
}
int main(){
	int H,R;
	while(cin >> H >> R && H){
		P home[100];
		for(int i = 0 ; i < H ; i++) cin >> home[i].real() >> home[i].imag();
		int U,M,S;
		double du,dm,ds;
		cin >> U >> M >> S >> du >> dm >> ds;
		du = du / 180.*PI;
		dm = dm / 180.*PI;
		ds = ds / 180.*PI;
		du /= 2;
		dm /= 2;
		ds /= 2;
		vector< pair<P,double> > flower;
		for(int i = 0 ; i < U+M+S ; i++){	
			P p; cin >> p.real() >> p.imag();
			flower.push_back(make_pair(p,(i<U?du:i<U+M?dm:ds)));
		}
		int answer[110] = {};
		for(int i = 0 ; i < R ; i++){
			double w,r;
			cin >> w >> r;
			w = w / 180. * PI;
			for(int j = 0 ; j < H ; j++){
				int ok = hit(home[j],w-du,w+du,r);
				//cout << w-du << " " << w+du << endl;
				for(int k = 0 ; k < U+M+S ; k++){
					ok &= !hit(home[j]-flower[k].first,w-flower[k].second,w+flower[k].second,r);
				}
				answer[j] += ok;
			}
		}
		int maximum = *max_element(answer,answer+H);
		int fst = 1;
		if( maximum == 0 ){ cout << "NA" << endl; goto exit; }

		for(int i = 0 ; i < H ; i++)
			if( maximum == answer[i] ){
				if( fst == 0 ) cout << " ";
				cout << i+1;
				fst = 0;
			}
		cout << endl;
		exit:;
	}
	
	
	
	
}

Compiler output:
a.cc: In function 'int main()':
a.cc:23:50: error: no match for 'operator>>' (operand types are 'std::istream' {aka 'std::basic_istream<char>'} and 'double')
   23 |                 for(int i = 0 ; i < H ; i++) cin >> home[i].real() >> home[i].imag();
      |                                              ~~~ ^~ ~~~~~~~~~~~~~~
      |                                              |                  |
      |                                              |                  double
      |                                              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:23:65: error: cannot bind non-const lvalue reference of type 'bool&' to a value of type 'double'
   23 |                 for(int i = 0 ; i < H ; i++) cin >> home[i].real() >> home[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:23:65: error: cannot bind non-const lvalue reference of type 'short int&' to a value of type 'double'
   23 |                 for(int i = 0 ; i < H ; i++) cin >> home[i].real() >> home[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:23:65: error: cannot bind non-const lvalue reference of type 'short unsigned int&' to a value of type 'double'
   23 |                 for(int i = 0 ; i < H ; i++) cin >> home[i].real() >> home[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:23:65: error: cannot bind non-const lvalue reference of type 'int&' to a value of type 'double'
   23 |                 for(int i = 0 ; i < H ; i++) cin >> home[i].real() >> home[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:23:65: error: cannot bind non-const lvalue reference of type 'unsigned int&' to a value of type 'double'
   23 |                 for(int i = 0 ; i < H ; i++) cin >> home[i].real() >> home[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:23:65: error: cannot bind non-const lvalue reference of type 'long int&' to a value of type 'double'
   23 |                 for(int i = 0 ; i < H ; i++) cin >> home[i].real() >> home[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:23:65: error: cannot bind non-const lvalue reference of type 'long unsigned int&' to a value of type 'double'
   23 |                 for(int i = 0 ; i < H ; i++) cin >> home[i].real() >> home[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:23:65: error: cannot bind non-const lvalue reference of type 'long long int&' to a value of type 'double'
   23 |                 for(int i = 0 ; i < H ; i++) cin >> home[i].real() >> home[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:23:65: error: cannot bind non-const lvalue reference of type 'long long unsigned int&' to a value of type 'double'
   23 |                 for(int i = 0 ; i < H ; i++) cin >> home[i].real() >> home[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:23:65: error: cannot bind non-const lvalue reference of type 'float&' to a value of type 'double'
   23 |                 for(int i = 0 ; i < H ; i++) cin >> home[i].real() >> home[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:23:65: error: cannot bind non-const lvalue reference of type 'double&' to an rvalue of type 'double'
   23 |                 for(int i = 0 ; i < H ; i++) cin >> home[i].real() >> home[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:23:65: error: cannot bind non-const lvalue reference of type 'long double&' to a value of type 'double'
   23 |                 for(int i = 0 ; i < H ; i++) cin >> home[i].real() >> home[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>]'
  328 |       operator>>(void*& __p)
      |       ^~~~~~~~
/usr/include/c++/14/istream:328:25: note:   no known conversion for argument 1 from 'double' to 'void*&'
  328 |       operator>>(void*& __p)
      |                  ~~~~~~~^~~
/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>]'
  122 |       operator>>(__istream_type& (*__pf)(__istream_type&))
      |       ^~~~~~~~
/usr/include/c++/14/istream:122:36: note:   no known conversion for argument 1 from 'double' to 'std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&)' {aka 'std::basic_istream<char>& (*)(std::basic_istream<char>&)'}
  122 |       operator>>(__istream_type&