TopcoderArchiveVisit Topcoder
SRM29 Aug 2001
SRM 27

Fractions

Problem statement, definition, constraints, and public examples.

Problem Statement

Class name: Fractions
Method name: add
Parameters: String[]
Returns: String


For the purpose of this problem we are going to represent fractions in String
objects in the following form: "<numerator>/<denominator>", where <, >, and "
are just for clarity. Some examples of fractions represented as strings are
"1/2", "71/19" and "5/5".


A fraction p/q can be simplifiable if there exists an integer k > 1, which is a
divisor of both p and q. This way the fraction is representable by p1/q1, where
p1 = p/k and q1 = q/k.


Write a class Fractions, which contains a method add. The method should accept
a String[] of fractions, represented in the form above and produce a single
simplified fraction, in the same format, which represents the sum of all
fractions received in the input argument.



The method signature is (Be sure your method is public):
String add (String[] f);


Inputs: (TopCoder will enforce these rules)
* f will contain between 1 and 50, inclusive, elements
* both numerators and denominators will be between 1 and 1000000000, inclusive
* the simplified sum of the first k elements of f (0 < k < f.size()) will
always have its numerator and denominator be between 1 and 1000000000, inclusive


Examples:
f = [1/3, 2/3]
result: 1/1


f = [2/2, 2/4, 2/8, 2/71]
result: 505/284


f = [333/10000000, 333/100000000]
result: 3663/100000000


f = [999999998/999999999, 4/999999999]
result: 333333334/333333333


f = [1/2]
result: 1/2



Examples of invalid input:
f = [1/999999999 1/2 1/999999999]
TopCoder returns: Sum of every prefix's numerator and denominator should be
between 1 and 1000000000 inclusive!


f = [1000000000/13, 2/13]
TopCoder returns: Sum of every prefix's numerator and denominator should be
between 1 and 1000000000 inclusive!


f = [1/100000000000]
TopCoder returns: Both numerators and denominators should be between 1 and
1000000000 inclusive!

Definition

Class:
Fractions
Method:
add
Parameters:
String[]
Returns:
String
Method signature:
String add(String[] param0)
(be sure your method is public)

Constraints

    Examples

      No public sample cases were explicitly marked for this problem in the original data.

      Back to all problems