@@ -13,16 +13,20 @@ long long lcm(long long a, long long b) {
1313 return (a * b) / gcd (a, b);
1414}
1515
16- Rational::Rational (long long numerator, long long denominator) : _integer(0 ),
17- _numerator(denominator > 0 ? numerator : -numerator),
18- _denominator(denominator ? (denominator > 0 ? denominator : -denominator) : 1) {
16+ Rational::Rational (long long numerator, long long denominator) :
17+ _integer(0 ),
18+ _numerator(denominator > 0 ? numerator : -numerator),
19+ _denominator(denominator ? (denominator > 0 ? denominator : -denominator) : 1)
20+ {
1921 assert (denominator != 0 );
2022 this ->simplify ();
2123}
2224
23- Rational::Rational (const Rational &temp, bool invert) : _integer(0 ),
24- _numerator(invert ? temp._denominator : temp._numerator),
25- _denominator(invert ? temp._numerator : temp._denominator) {
25+ Rational::Rational (const Rational &temp, bool invert) :
26+ _integer(0 ),
27+ _numerator(invert ? temp._denominator : temp._numerator),
28+ _denominator(invert ? temp._numerator : temp._denominator)
29+ {
2630 this ->simplify ();
2731}
2832
@@ -86,18 +90,14 @@ ostream &operator<<(ostream &out, const Rational &r) {
8690 if (r._integer ) {
8791 out << r._integer ;
8892 if (num) {
89- if (r._integer > 0 )
90- out << " +" ;
91- if (r._integer < 0 )
92- out << " -" ;
93- if (num < 0 )
94- num *= -1 ;
93+ if (r._integer > 0 ) out << " +" ;
94+ if (r._integer < 0 ) out << " -" ;
95+ if (num < 0 ) num *= -1 ;
9596 }
9697 }
9798 if (r._numerator ) {
9899 out << " (" << num;
99- if (r._denominator != 1 )
100- out << " /" << r._denominator ;
100+ if (r._denominator != 1 ) out << " /" << r._denominator ;
101101 out << " )" ;
102102 }
103103 else
@@ -163,9 +163,9 @@ Rational Rational::operator--(int) {
163163
164164Rational operator +(const Rational &r1, const Rational &r2) {
165165 Rational temp (
166- (r1._numerator + r1._integer * r1._denominator ) * r2._denominator +
167- (r2._numerator + r2._integer * r2._denominator ) * r1._denominator ,
168- r1._denominator * r2._denominator );
166+ (r1._numerator + r1._integer * r1._denominator ) * r2._denominator +
167+ (r2._numerator + r2._integer * r2._denominator ) * r1._denominator ,
168+ r1._denominator * r2._denominator );
169169 return temp.simplify ();
170170};
171171
@@ -195,8 +195,9 @@ Rational operator-(long long value, const Rational &r) {
195195
196196Rational operator *(const Rational &r1, const Rational &r2) {
197197 Rational temp (
198- (r1._numerator + r1._integer * r2._denominator ) * (r2._numerator + r2._integer + r2._denominator ),
199- r1._denominator * r2._denominator );
198+ (r1._numerator + r1._integer * r2._denominator ) *
199+ (r2._numerator + r2._integer + r2._denominator ),
200+ r1._denominator * r2._denominator );
200201 return temp.simplify ();
201202};
202203
@@ -271,8 +272,8 @@ Rational &operator/=(Rational &left, const long long &right) {
271272bool operator >(const Rational &r1, const Rational &r2) {
272273 long long L = lcm (r1._denominator , r2._denominator );
273274 return (
274- (r1._numerator + r1._integer * r1._denominator ) * L / r1._denominator >
275- (r2._numerator + r1._integer * r1._denominator ) * L / r2._denominator );
275+ (r1._numerator + r1._integer * r1._denominator ) * L / r1._denominator >
276+ (r2._numerator + r1._integer * r1._denominator ) * L / r2._denominator );
276277};
277278
278279bool operator <=(const Rational &r1, const Rational &r2) {
@@ -292,15 +293,14 @@ bool operator>=(const Rational &r1, const Rational &r2) {
292293void ShellSort (int n, Rational *mass[]) {
293294 int i, j, step;
294295 Rational *tmp;
295- for (step = n / 2 ; step > 0 ; step /= 2 )
296+ for (step = n / 2 ; step > 0 ; step /= 2 ) {
296297 for (i = step; i < n; i++) {
297298 tmp = mass[i];
298299 for (j = i; j >= step; j -= step) {
299- if (*tmp < *mass[j - step])
300- mass[j] = mass[j - step];
301- else
302- break ;
300+ if (*tmp < *mass[j - step]) mass[j] = mass[j - step];
301+ else break ;
303302 }
304303 mass[j] = tmp;
305304 }
305+ }
306306}
0 commit comments