-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTask_557_1.java
77 lines (52 loc) · 2.06 KB
/
Task_557_1.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
package Task_acmp;
import java.util.ArrayList;
import java.util.Scanner;
public class Task_557_1 {
public static void main(String[] args) {
ArrayList<int[][]> matrixArr = new ArrayList<>();
Scanner sc = new Scanner(System.in);
int quantityMatrix = sc.nextInt();
int sizeMatrix = sc.nextInt();
int numberString = sc.nextInt();
int numberColumn = sc.nextInt();
int simpleNumber = sc.nextInt();
for (int i = 0; i < quantityMatrix; i++) {
matrixArr.add(new int[sizeMatrix][sizeMatrix]);
for (int j = 0; j < sizeMatrix; j++) {
for (int l = 0; l < sizeMatrix; l++) {
matrixArr.get(i)[j][l] = sc.nextInt();
}
}
}
if (quantityMatrix == 1) {
System.out.println(matrixArr.get(0)[numberString - 1][numberColumn - 1]);
} else {
ArrayList<Integer> currentMatrix = new ArrayList<>();
int sum;
int sumMax = 0;
for (int i = 1; i < quantityMatrix; i++) {
for (int l = 0; l < sizeMatrix; l++) {
sum = 0;
for (int j = 0; j < sizeMatrix; j++) {
if (i == 1) {
sum += matrixArr.get(i - 1)[numberString - 1][j] * matrixArr.get(i)[j][l];
} else {
sum += currentMatrix.get(j) * matrixArr.get(i)[j][l];
}
if (sum >= simpleNumber) {
sum = sum % simpleNumber;
}
sumMax = sum;
}
currentMatrix.add(currentMatrix.size(), sumMax);
}
if (quantityMatrix >= 3) {
for (int s = 0; currentMatrix.size() > sizeMatrix; ) {
currentMatrix.remove(s);
}
}
}
System.out.println(currentMatrix.get(numberColumn - 1));
}
}
}