(对于给定的r,b)
(为了方便,设r<=b)
(如果有k个块颜色相同)
(那么一定是在某个[kb,(k+1)b]间连续有k个r的倍数)
(因为一旦是b的倍数,就可以取不同的颜色,就达不到目的了.)
(color{Orange}{于是,我们最少需要(k-1)*r+1的区间长度来构造})
(但是出现b的倍数后,下一个出现的a的倍数位置不确定,我们能用的区间长度就不确定)
(我们希望找一个a的倍数,尽量少的大于那个b的倍数,这样可用区间长就最多)
(color{Red}{举个例子: 5 8 2 })
(我们最少需要(2-1)*5+1的区间长度来构造)
(然后我们发现25和24离得最近是1,那么可用区间就是32-25=7)
(那么其实这个a倍数-b倍数的最小值就是gcd(r,b))
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll r,b,k;
ll gcd(ll a,ll b){
return b==0?a:gcd(b,a%b);
}
int main()
{
int t;cin>>t;
while(t--)
{
cin>>r>>b>>k;
//预期不可行,发现可行
ll last=gcd(r,b);
ll empty=max(r,b)-last;//有这么大的空位
ll need=(k-1)*min(r,b)+1;//需要这么大
if(empty>=need) cout<<"REBEL";
else cout<<"OBEY";
cout<<endl;
}
}