题目大意:给板子涂色,首先板子是顺序的,然后可以涂两种颜色,如果是r的倍数涂成红色,是b的倍数涂成蓝色,
连续的k个相同的颜色则不能完成任务,能完成任务则输出OBEY,否则输出REBEL
首先我们可以求b,r的gcd d=gcd(b,r)
然后b/=d,r/=d
然后让r<b if(r>b) swap(b,r)
然后如果要连续k个板子颜色涂成r,则要占的长度是 len = r*(k-1)+1
如果这个长度len>b 则可以完成,否则不可以完成
这个原因应该很好理解,但是为什么b,r 要先处理一下都除以d呢?
这个是因为如果b,r 不互质,则它们有一个最大公约数,所以他们每走一步都是最大公约数的整数倍数
如果本来就互质,那么最大公约数就是1,如果不互质,那么这个最大公约数d,其实就相当于这个1
所以除以d 不会影响结果。

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <iostream>
#include <map>
#include <vector>
#define inf 0x3f3f3f3f-=
#define debug(x) cout<<"x = "<<x<<endl;
using namespace std;
const int maxn=1e6+10;
typedef long long ll;
ll gcd(ll a,ll b){
return b==0?a:gcd(b,a%b);
}
int main(){
int t;
scanf("%d",&t);
while(t--){
ll r,b,k;
scanf("%lld%lld%lld",&r,&b,&k);
ll d=gcd(r,b);
r/=d,b/=d;
if(r>b) swap(r,b);
if(r*(k-1)+1<b) printf("REBEL\n");
else printf("OBEY\n");
}
}
