- #include <iostream> 
- using namespace std; 
-   
- class Rational { 
-     int p;  
-     int q;  
- public:   
-     Rational (int d=0, int n=1) : p{d}, q{n} { }  
-     Rational operator*(const Rational& r) const {    // for curent object * r 
-     	return Rational(p*r.p,q*r.q);  
-     } 
-     int numerator() const {return p; } 
-     int denominator() const { return q; }  
- };  
- Rational operator+(const Rational &a, const Rational &b) { 
- 	return Rational(a.numerator()*b.denominator()+b.numerator()*a.denominator(), 
- 	                                                  a.denominator()*b.denominator()); 
- } 
- ostream& operator<<(ostream& os, const Rational &r) { 
- 	return os << " ("<<r.numerator()<<"/"<<r.denominator()<<") "; 
- } 
-   
-   
- int main() { 
- 	Rational two{2};  
- 	Rational quarter{1,4};  
- 	cout << two<<endl;  
- 	cout << quarter<<endl;  
- 	cout << quarter*2 <<endl;  
- 	cout << quarter*two <<endl;  
- 	cout << quarter*two+quarter <<endl;  
- 	return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgUmF0aW9uYWwgewogICAgaW50IHA7IAogICAgaW50IHE7IApwdWJsaWM6ICAKICAgIFJhdGlvbmFsIChpbnQgZD0wLCBpbnQgbj0xKSA6IHB7ZH0sIHF7bn0geyB9IAogICAgUmF0aW9uYWwgb3BlcmF0b3IqKGNvbnN0IFJhdGlvbmFsJiByKSBjb25zdCB7ICAgIC8vIGZvciBjdXJlbnQgb2JqZWN0ICogcgogICAgCXJldHVybiBSYXRpb25hbChwKnIucCxxKnIucSk7IAogICAgfQogICAgaW50IG51bWVyYXRvcigpIGNvbnN0IHtyZXR1cm4gcDsgfQogICAgaW50IGRlbm9taW5hdG9yKCkgY29uc3QgeyByZXR1cm4gcTsgfSAKfTsgClJhdGlvbmFsIG9wZXJhdG9yKyhjb25zdCBSYXRpb25hbCAmYSwgY29uc3QgUmF0aW9uYWwgJmIpIHsKCXJldHVybiBSYXRpb25hbChhLm51bWVyYXRvcigpKmIuZGVub21pbmF0b3IoKStiLm51bWVyYXRvcigpKmEuZGVub21pbmF0b3IoKSwKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5kZW5vbWluYXRvcigpKmIuZGVub21pbmF0b3IoKSk7Cn0Kb3N0cmVhbSYgb3BlcmF0b3I8PChvc3RyZWFtJiBvcywgY29uc3QgUmF0aW9uYWwgJnIpIHsKCXJldHVybiBvcyA8PCAiICgiPDxyLm51bWVyYXRvcigpPDwiLyI8PHIuZGVub21pbmF0b3IoKTw8IikgIjsKfQoKCmludCBtYWluKCkgewoJUmF0aW9uYWwgdHdvezJ9OyAKCVJhdGlvbmFsIHF1YXJ0ZXJ7MSw0fTsgCgljb3V0IDw8IHR3bzw8ZW5kbDsgCgljb3V0IDw8IHF1YXJ0ZXI8PGVuZGw7IAoJY291dCA8PCBxdWFydGVyKjIgPDxlbmRsOyAKCWNvdXQgPDwgcXVhcnRlcip0d28gPDxlbmRsOyAKCWNvdXQgPDwgcXVhcnRlcip0d28rcXVhcnRlciA8PGVuZGw7IAoJcmV0dXJuIDA7Cn0=