Pagini recente » Cod sursa (job #1451486) | Cod sursa (job #1782202) | Cod sursa (job #2817622) | Cod sursa (job #3030408) | Cod sursa (job #2183335)
import java.io.*;
import java.util.Scanner;
public class Iepuri {
static int T;
static int X, Y, Z;
static int A, B, C;
static int N;
static String inputFile = "/home/alex/Facultate/Anul2/Sem2/PA/InfoArena/src/iepuri.in";
static String outputFile = "iepuri.out";
public static long[][] matrixMultiply(long[][] mat1, long[][] mat2, int size) {
long[][] res = new long[size][size];
for (int i = 0; i < size; ++i) {
for (int j = 0; j < size; ++j) {
long sum = 0;
for (int k = 0; k < size; ++k) {
sum += 1L * mat1[i][k] * mat2[k][j];
}
res[i][j] = sum;
}
}
return res;
}
public static long[][] matrixPower(long[][] A, long exp, int size) {
if (exp == 0)
return new long[][]{{1, 0}, {0, 1}};
else if (exp == 1)
return A;
if (exp % 2 == 0) {
long[][] temp = matrixPower(A, exp / 2, size);
return matrixMultiply(temp, temp, size);
} else if (exp % 2 == 1) {
long[][] temp = matrixPower(A, (exp - 1) / 2, size);
return matrixMultiply(matrixMultiply(temp, A, size), temp, size);
}
return A;
}
public static long solve() {
long[][] M = new long[][]{{0, 1, 0}, {0, 0, 1}, {C, B, A}};
long[][] res = matrixPower(M, N, 3);
long sum = 0;
sum = res[0][0] * X + res[0][1] * Y + res[0][2] * Z;
return sum;
}
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(new File(inputFile));
PrintWriter pw = new PrintWriter(new File(outputFile));
T = scanner.nextInt();
for (int i = 0; i < T; ++i) {
X = scanner.nextInt();
Y = scanner.nextInt();
Z = scanner.nextInt();
A = scanner.nextInt();
B = scanner.nextInt();
C = scanner.nextInt();
N = scanner.nextInt();
long sum = solve();
pw.printf("%d\n", sum);
}
pw.close();
}
}