Language: C++

#include <bits/stdc++.h>

#define _overload(_1,_2,_3,name,...) name
#define _rep(i,n) _range(i,0,n)
#define _range(i,a,b) for(int i=int(a);i<int(b);++i)
#define rep(...) _overload(__VA_ARGS__,_range,_rep,)(__VA_ARGS__)

#define _rrep(i,n) _rrange(i,n,0)
#define _rrange(i,a,b) for(int i=int(a)-1;i>=int(b);--i)
#define rrep(...) _overload(__VA_ARGS__,_rrange,_rrep,)(__VA_ARGS__)

#define _all(arg) begin(arg),end(arg)
#define uniq(arg) sort(_all(arg)),(arg).erase(unique(_all(arg)),end(arg))
#define getidx(ary,key) lower_bound(_all(ary),key)-begin(ary)
#define clr(a,b) memset((a),(b),sizeof(a))
#define bit(n) (1LL<<(n))
#define popcount(n) (__builtin_popcountll(n))

using namespace std;

template<class T>bool chmax(T &a, const T &b) { return (a < b) ? (a = b, 1) : 0;}
template<class T>bool chmin(T &a, const T &b) { return (b < a) ? (a = b, 1) : 0;}

using ll = long long;
using R = long double;
const R EPS = 1e-9L; // [-1000,1000]->EPS=1e-8 [-10000,10000]->EPS=1e-7
inline int sgn(const R& r) {return (r > EPS) - (r < -EPS);}
inline R sq(R x) {return sqrt(max(x, 0.0L));}

const int dx[8] = {1, 0, -1, 0, 1, -1, -1, 1};
const int dy[8] = {0, 1, 0, -1, 1, 1, -1, -1};

// Problem Specific Parameter:

#define int long long
signed main(void) {
	int q;
	cin >> q;

	rep(loop, q) {
		int a, b, c, d;
		cin >> a >> b >> c >> d;
		c--, d--;

		const int total = a + b;
		const int num = max(a, b);
		const int den = min(a, b) + 1;
		const int k = (num + den - 1) / den;

		int low = 0, high = a + 1;
		while (high - low > 1) {
			const int mid = (low + high) / 2;
			const int na = a - mid;
			const int nb = b - (mid - 1) / k;

			if (na >= 0 and nb >= 0 and nb <= (na + 1) * k)
				low = mid;
			else
				high = mid;
		}

		const int border = low + (low - 1) / k;
		//cerr << low << endl;

		string ans = "";
		rep(i, c, d + 1) {
			if (i < border) {
				if (i % (k + 1) != k)
					ans += 'A';
				else
					ans += 'B';
			} else {
				if ((total - 1 - i) % (k + 1) != k)
					ans += 'B';
				else
					ans += 'A';
			}
		}
		cout << ans << endl;
	}

	return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:35:13: error: expected primary-expression before 'long'
   35 | #define int long long
      |             ^~~~
a.cc:5:33: note: in expansion of macro 'int'
    5 | #define _range(i,a,b) for(int i=int(a);i<int(b);++i)
      |                                 ^~~
a.cc:4:19: note: in expansion of macro '_range'
    4 | #define _rep(i,n) _range(i,0,n)
      |                   ^~~~~~
a.cc:3:38: note: in expansion of macro '_rep'
    3 | #define _overload(_1,_2,_3,name,...) name
      |                                      ^~~~
a.cc:6:18: note: in expansion of macro '_overload'
    6 | #define rep(...) _overload(__VA_ARGS__,_range,_rep,)(__VA_ARGS__)
      |                  ^~~~~~~~~
a.cc:40:9: note: in expansion of macro 'rep'
   40 |         rep(loop, q) {
      |         ^~~
a.cc:35:13: error: expected primary-expression before 'long'
   35 | #define int long long
      |             ^~~~
a.cc:5:42: note: in expansion of macro 'int'
    5 | #define _range(i,a,b) for(int i=int(a);i<int(b);++i)
      |                                          ^~~
a.cc:4:19: note: in expansion of macro '_range'
    4 | #define _rep(i,n) _range(i,0,n)
      |                   ^~~~~~
a.cc:3:38: note: in expansion of macro '_rep'
    3 | #define _overload(_1,_2,_3,name,...) name
      |                                      ^~~~
a.cc:6:18: note: in expansion of macro '_overload'
    6 | #define rep(...) _overload(__VA_ARGS__,_range,_rep,)(__VA_ARGS__)
      |                  ^~~~~~~~~
a.cc:40:9: note: in expansion of macro 'rep'
   40 |         rep(loop, q) {
      |         ^~~
a.cc:35:13: error: expected ';' before 'long'
   35 | #define int long long
      |             ^~~~
a.cc:5:42: note: in expansion of macro 'int'
    5 | #define _range(i,a,b) for(int i=int(a);i<int(b);++i)
      |                                          ^~~
a.cc:4:19: note: in expansion of macro '_range'
    4 | #define _rep(i,n) _range(i,0,n)
      |                   ^~~~~~
a.cc:3:38: note: in expansion of macro '_rep'
    3 | #define _overload(_1,_2,_3,name,...) name
      |                                      ^~~~
a.cc:6:18: note: in expansion of macro '_overload'
    6 | #define rep(...) _overload(__VA_ARGS__,_range,_rep,)(__VA_ARGS__)
      |                  ^~~~~~~~~
a.cc:40:9: note: in expansion of macro 'rep'
   40 |         rep(loop, q) {
      |         ^~~
a.cc:35:13: error: expected primary-expression before 'long'
   35 | #define int long long
      |             ^~~~
a.cc:5:42: note: in expansion of macro 'int'
    5 | #define _range(i,a,b) for(int i=int(a);i<int(b);++i)
      |                                          ^~~
a.cc:4:19: note: in expansion of macro '_range'
    4 | #define _rep(i,n) _range(i,0,n)
      |                   ^~~~~~
a.cc:3:38: note: in expansion of macro '_rep'
    3 | #define _overload(_1,_2,_3,name,...) name
      |                                      ^~~~
a.cc:6:18: note: in expansion of macro '_overload'
    6 | #define rep(...) _overload(__VA_ARGS__,_range,_rep,)(__VA_ARGS__)
      |                  ^~~~~~~~~
a.cc:40:9: note: in expansion of macro 'rep'
   40 |         rep(loop, q) {
      |         ^~~
a.cc:35:13: error: expected ')' before 'long'
   35 | #define int long long
      |             ^~~~
a.cc:5:42: note: in expansion of macro 'int'
    5 | #define _range(i,a,b) for(int i=int(a);i<int(b);++i)
      |                                          ^~~
a.cc:4:19: note: in expansion of macro '_range'
    4 | #define _rep(i,n) _range(i,0,n)
      |                   ^~~~~~
a.cc:3:38: note: in expansion of macro '_rep'
    3 | #define _overload(_1,_2,_3,name,...) name
      |                                      ^~~~
a.cc:6:18: note: in expansion of macro '_overload'
    6 | #define rep(...) _overload(__VA_ARGS__,_range,_rep,)(__VA_ARGS__)
      |                  ^~~~~~~~~
a.cc:40:9: note: in expansion of macro 'rep'
   40 |         rep(loop, q) {
      |         ^~~
a.cc:5:26: note: to match this '('
    5 | #define _range(i,a,b) for(int i=int(a);i<int(b);++i)
      |                          ^
a.cc:4:19: note: in expansion of macro '_range'
    4 | #define _rep(i,n) _range(i,0,n)
      |                   ^~~~~~
a.cc:3:38: note: in expansion of macro '_rep'
    3 | #define _overload(_1,_2,_3,name,...) name
      |                                      ^~~~
a.cc:6:18: note: in expansion of macro '_overload'
    6 | #define rep(...) _overload(__VA_ARGS__,_range,_rep,)(__VA_ARGS__)
      |                  ^~~~~~~~~
a.cc:40:9: note: in expansion of macro 'rep'
   40 |         rep(loop, q) {
      |         ^~~
a.cc:40:13: error: 'loop' was not declared in this scope
   40 |         rep(loop, q) {
      |             ^~~~
a.cc:5:51: note: in definition of macro '_range'
    5 | #define _range(i,a,b) for(int i=int(a);i<int(b);++i)
      |                                                   ^
a.cc:3:38: note: in expansion of macro '_rep'
    3 | #define _overload(_1,_2,_3,name,...) name
      |                                      ^~~~
a.cc:40:9: note: in expansion of macro 'rep'
   40 |         rep(loop, q) {
      |         ^~~