/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
System .
out .
println ( subtraction
( 5 ,
3 ,
4 ,
6 ,
5 ,
8 ,
0 ,
0 ,
0 ,
"" ,
0 ,
0 ,
0 ) ) ; // your code goes here
}
public static int gcd( int a, int b) { // it's needed to find the reduced answer of all calculations.
if ( b > a) {
a = a + b;
b = a - b;
a = a - b;
}
while ( b != 0 ) {
a %= b;
a = a + b;
b = a - b;
a = a - b;
}
return a;
}
public static String subtraction
( int wholenumber1,
int numerator1,
int denominator1,
int wholenumber2,
int numerator2,
int denominator2,
int wholeResult,
int numResult,
int denResult,
String ResultAnswer,
int reminder,
int a,
int GCD
) {
if ( wholenumber1 != 0 ) {
numerator1 = wholenumber1 * denominator1 + numerator1;
}
if ( wholenumber2 != 0 ) {
numerator2 = ( - wholenumber2) * denominator2 - numerator2;
}
numerator1 = numerator1 * denominator2;
numerator2 = numerator2 * denominator1;
numResult = numerator1 + numerator2;
denResult = denominator1 * denominator2;
if ( Math .
abs ( numResult
) > Math .
abs ( denResult
) ) { //*** find reduced anser reminder = numResult % denResult;
a = ( numResult - reminder) / denResult;
wholeResult = wholeResult + a;
numResult = reminder;
}
GCD
= gcd
( Math .
abs ( denResult
) ,
Math .
abs ( numResult
) ) ; denResult = denResult / GCD; //*** find reduced answer
numResult = numResult / GCD; //*** find reduced
if ( wholeResult < 0 && numResult < 0 ) {
numResult = - numResult;
}
if ( numResult == 0 )
ResultAnswer = wholeResult+ "" ;
else if ( wholeResult == 0 )
ResultAnswer = numResult + "/" + denResult;
else
ResultAnswer = wholeResult + "_" + numResult + "/" + denResult;
return ResultAnswer;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVN5c3RlbS5vdXQucHJpbnRsbihzdWJ0cmFjdGlvbig1LDMsNCw2LDUsOCwwLDAsMCwiIiwwLDAsMCkpOwoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCX0KCQoJcHVibGljIHN0YXRpYyBpbnQgZ2NkKGludCBhLCBpbnQgYikgeyAgIC8vIGl0J3MgbmVlZGVkIHRvIGZpbmQgdGhlIHJlZHVjZWQgYW5zd2VyIG9mIGFsbCBjYWxjdWxhdGlvbnMuIAogICAgICAgIGlmIChiID4gYSkgewogICAgICAgICAgICBhID0gYSArIGI7CiAgICAgICAgICAgIGIgPSBhIC0gYjsKICAgICAgICAgICAgYSA9IGEgLSBiOwogICAgICAgIH0KCiAgICAgICAgd2hpbGUgKGIgIT0gMCkgewogICAgICAgICAgICBhICU9IGI7CiAgICAgICAgICAgIGEgPSBhICsgYjsKICAgICAgICAgICAgYiA9IGEgLSBiOwogICAgICAgICAgICBhID0gYSAtIGI7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gYTsKICAgIH0KCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHN1YnRyYWN0aW9uKGludCB3aG9sZW51bWJlcjEsIGludCBudW1lcmF0b3IxLGludCBkZW5vbWluYXRvcjEsIGludCB3aG9sZW51bWJlcjIsIGludCBudW1lcmF0b3IyLCBpbnQgZGVub21pbmF0b3IyLCBpbnQgd2hvbGVSZXN1bHQsIGludCBudW1SZXN1bHQsIGludCBkZW5SZXN1bHQsIFN0cmluZyBSZXN1bHRBbnN3ZXIsIGludCByZW1pbmRlciwgaW50IGEsIGludCBHQ0QpewogICAgICAgIAogICAgICAgIGlmICh3aG9sZW51bWJlcjEgIT0gMCApIHsKICAgICAgICAJbnVtZXJhdG9yMSA9IHdob2xlbnVtYmVyMSAqIGRlbm9taW5hdG9yMSArIG51bWVyYXRvcjE7CiAgICAgICAgfQogICAgICAgIGlmICh3aG9sZW51bWJlcjIgIT0gMCApIHsKICAgICAgICAJbnVtZXJhdG9yMiA9ICgtd2hvbGVudW1iZXIyKSAqIGRlbm9taW5hdG9yMiAtIG51bWVyYXRvcjI7CiAgICAgICAgfQogICAgICAgIG51bWVyYXRvcjEgPSBudW1lcmF0b3IxICogZGVub21pbmF0b3IyOwogICAgICAgIG51bWVyYXRvcjIgPSBudW1lcmF0b3IyICogZGVub21pbmF0b3IxOwogICAgICAgIG51bVJlc3VsdCA9IG51bWVyYXRvcjEgKyBudW1lcmF0b3IyOyAKICAgICAgICBkZW5SZXN1bHQgPSBkZW5vbWluYXRvcjEgKiBkZW5vbWluYXRvcjI7CiAgICAgICAgCiAgICAgICAgaWYgKE1hdGguYWJzKG51bVJlc3VsdCkgPiBNYXRoLmFicyhkZW5SZXN1bHQpKSB7ICAgICAgICAvLyoqKiAgZmluZCByZWR1Y2VkIGFuc2VyCiAgICAgICAgICAgIHJlbWluZGVyID0gbnVtUmVzdWx0ICUgZGVuUmVzdWx0OwogICAgICAgICAgICBhID0gKG51bVJlc3VsdCAtIHJlbWluZGVyKSAvIGRlblJlc3VsdDsKICAgICAgICAgICAgd2hvbGVSZXN1bHQgPSB3aG9sZVJlc3VsdCArIGE7IAogICAgICAgICAgICBudW1SZXN1bHQgPSByZW1pbmRlcjsgICAgICAgICAgICAgICAKICAgICAgICB9CiAgICAgICAgR0NEID0gZ2NkKE1hdGguYWJzKGRlblJlc3VsdCksTWF0aC5hYnMobnVtUmVzdWx0KSk7CiAgICAgICAgZGVuUmVzdWx0ID0gZGVuUmVzdWx0IC8gR0NEOyAgICAgICAgLy8qKiogIGZpbmQgcmVkdWNlZCBhbnN3ZXIKICAgICAgICBudW1SZXN1bHQgPSBudW1SZXN1bHQgLyBHQ0Q7ICAgICAgICAvLyoqKiAgZmluZCByZWR1Y2VkIAogICAgICAgIGlmICggd2hvbGVSZXN1bHQgPCAwICYmIG51bVJlc3VsdCA8IDAgKSB7CiAgICAgICAgICAgIG51bVJlc3VsdCA9IC1udW1SZXN1bHQ7CiAgICAgICAgfQogICAgICAgIGlmIChudW1SZXN1bHQgPT0gMCkKICAgICAgICAgICAgUmVzdWx0QW5zd2VyID0gd2hvbGVSZXN1bHQrIiI7CiAgICAgICAgZWxzZSBpZiAod2hvbGVSZXN1bHQgPT0gMCkKICAgICAgICAgICAgUmVzdWx0QW5zd2VyID0gbnVtUmVzdWx0ICsgIi8iICsgZGVuUmVzdWx0OwogICAgICAgIGVsc2UgCiAgICAgICAgICAgIFJlc3VsdEFuc3dlciA9IHdob2xlUmVzdWx0ICsgIl8iICsgbnVtUmVzdWx0ICsgIi8iICsgZGVuUmVzdWx0OwogICAgICAgIHJldHVybiBSZXN1bHRBbnN3ZXI7CiAgICB9Cgp9