https://vjudge.net/problem/CodeForces-1260Cios
有一串磚,凡是r的倍數而不是b的倍數必須塗紅,凡是b的倍數而不是r的倍數必須塗藍,是公倍數則選一個塗。把塗色的磚選出來以後,問是否必定有連續的k個磚是同一種顏色。c++
當r和b有公因子(即gcd!=1)時,能夠發現只是跳過了一些數,和最簡形式沒有區別。那麼咱們先約簡,約簡後,若是r==b,那麼絕對是有解的(交題塗);不然,假設b>r,那麼序列必定是相似x r b r b r r b,由於b增加的更快,那麼對於一段連續的r,咱們要用兩個b去分隔它們,兩個b之間的位置個數是b-1,k個r要佔的長度是(k-1)*r+1,判斷兩個b之間能不能用這k個r填滿便可,若是能或者有多的位置,那麼不行;不然可行。spa
#include<bits/stdc++.h> using namespace std; #define inf 0x3f3f3f3f #define ll long long const int N=200005; const int mod=1e9+7; const double eps=1e-8; const double PI = acos(-1.0); #define lowbit(x) (x&(-x)) ll gcd(ll a,ll b) { return b==0?a:gcd(b,a%b); } int main() { std::ios::sync_with_stdio(false); int t; cin>>t; while(t--) { ll r,b,k; cin>>r>>b>>k; if(r>b) swap(r,b); ll g=gcd(r,b); r/=g,b/=g; if(r==b) { cout<<"OBEY"<<endl; } else if(b-1<(k-1)*r+1) cout<<"OBEY"<<endl; else cout<<"REBEL"<<endl; } return 0; }