TopCoder problem "MagicSquare" used in SRM 188 (Division II Level One)



Problem Statement

    

A magic square is a 3x3 array of numbers, such that the sum of each row, column, and diagonal are all the same. For example:


    8 1 6
    3 5 7
    4 9 2

In this example, all rows, columns, and diagonals sum to 15.

You will be given a int[] representing the nine numbers of a magic square, listed left-to-right, top-to-bottom. However, one of these numbers will be replaced by a -1. Write a method to determine which number was removed. For example, if the 7 was removed from the magic square above, you would be given { 8, 1, 6, 3, 5, -1, 4, 9, 2 }, and your program should return 7.

The completed magic square will consist of exactly 9 distinct positive integers.

 

Definition

    
Class:MagicSquare
Method:missing
Parameters:int[]
Returns:int
Method signature:int missing(int[] square)
(be sure your method is public)
    
 

Constraints

-square will contain exactly 9 elements.
-Each element of square will either be -1 or be between 1 and 100, inclusive.
-Exactly one element of square will be -1.
-The eight elements of square that are not -1 will be distinct.
-The input will be such that a number between 1 and 100, inclusive, can be found to complete the magic square, and it will not be equal to any of the other 8 numbers in the square.
 

Examples

0)
    
{ 8, 1, 6, 3, 5, -1, 4, 9, 2 }
Returns: 7
This is the example from the problem statement.
1)
    
{ -1, 1, 6, 3, 5, 7, 4, 9, 2 }
Returns: 8
The same square, but this time with the number 8 removed.
2)
    
{ 5, 15, 13, 19, 11, 3, 9, 7, -1 }
Returns: 17
The missing number is 17.

Problem url:

http://www.topcoder.com/stat?c=problem_statement&pm=2366

Problem stats url:

http://www.topcoder.com/tc?module=ProblemDetail&rd=4760&pm=2366

Writer:

legakis

Testers:

lbackstrom , brett1479

Problem categories:

Simple Math