rendered paste body#include <iostream>
using namespace std;
int count = 0;
class Fraction {
public:
int num, den;
Fraction() {
num = 1;
den = 1;
};
Fraction(int a, int b) {
num = a;
den = b;
};
bool operator< (Fraction f);
bool operator> (Fraction f);
bool operator== (Fraction f);
bool operator<= (Fraction f);
bool operator>= (Fraction f);
string search(Fraction& f, Fraction& g) {
count++;
Fraction h = Fraction (f.num + g.num, f.den + g.den);
if (h == *this)
return "";
if (h > *this)
return "L" + this->search(f, h);
if (h < *this)
return "R" + this->search(h, g);
}
};
bool Fraction::operator< (Fraction f) {
int num1 = num*f.den;
int num2 = den*f.num;
return (num1 < num2)? true : false;
}
bool Fraction::operator> (Fraction f) {
int num1 = num*f.den;
int num2 = den*f.num;
return (num1 > num2)? true : false;
}
bool Fraction::operator== (Fraction f) {
int num1 = num*f.den;
int num2 = den*f.num;
return (num1 == num2)? true : false;
}
int main() {
Fraction in, cur_frac;
cur_frac.num = 1;
cur_frac.den = 1;
while (!cin.eof()) {
int n, d;
cin >> n >> d;
Fraction in = Fraction(n, d);
string out;
if (in == Fraction(1,1))
out = "";
if (in < Fraction(1,1)) {
Fraction left = Fraction(0,1);
Fraction right = Fraction();
out += "L" + in.search(left, right) + "\n";
}
if (in > Fraction(1,1)) {
Fraction left = Fraction();
Fraction right = Fraction(1, 0);
out += "R" + in.search(left, right) + "\n";
}
cout << out;
}
return 0;
}