-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathUCBINTA.java
115 lines (88 loc) · 2.65 KB
/
UCBINTA.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.StringTokenizer;
/**
* Created by poplig on 9/20/14.
*/
public class Main {
private static final int MAX = 1001;
public static void main(String [] args) {
InputReader inputReader = new InputReader(System.in);
// Scanner scanner = new Scanner(System.in);
// take the input.
int n = inputReader.nextInt();
int input[][] = new int[MAX][MAX];
for(int i = 0; i < n; ++i) {
for(int j = 0; j < n; ++j) {
input[i][j] = inputReader.nextInt();
}
}
Main.printNumber(input, n);
}
Main() {
}
public static void printNumber(int input[][], int n) {
// Special cases of n < 3.
if(n == 2) {
System.out.println("1 1");
return;
}
// Get the sum with n-3.
int tempSum1 = input[n-3][n-2] + input[n-3][n-1];
// Get the sum with n-2.
int tempSum2 = input[n-2][n-1];
// Subtraction of tempSum1 and tempSum1 will give twice of n-3.
int numb = ( tempSum1 - tempSum2 ) / 2;
String result = "";
// Get rest of the numbers by using the calculated number.
for(int i = 0; i < n; ++i) {
if(i == n - 3) {
result += (numb + " ");
} else if(i != n-1) {
result += (input[i][n-3] - numb + " ");
} else {
result += (input[i][n-3] - numb);
}
}
System.out.println(result);
}
}
class InputReader {
private BufferedReader reader;
private StringTokenizer tokenizer;
public InputReader(InputStream stream) {
reader = new BufferedReader(new InputStreamReader(stream));
tokenizer = null;
}
public String next() {
while (tokenizer == null || !tokenizer.hasMoreTokens()) {
try {
tokenizer = new StringTokenizer(reader.readLine());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return tokenizer.nextToken();
}
public String nextLine(){
String line ="";
try {
line = reader.readLine();
} catch (IOException e) {
throw new RuntimeException(e);
}
return line;
}
public int nextInt(){
return Integer.parseInt(next());
}
public double nextDouble(){
return Double.parseDouble(next());
}
public long nextLong(){
return Long.parseLong(next());
}
}