Cod sursa(job #2383355)

Utilizator ianis98Bacula Ianis ianis98 Data 19 martie 2019 13:04:04
Problema Iepuri Scor 20
Compilator java Status done
Runda Arhiva de probleme Marime 1.6 kb
import java.io.*;

public class Main {

    private final static int MOD = 666013;

    public static void main(String[] args) throws IOException {

        File in = new File("iepuri.in");
        File out = new File("iepuri.out");

        FileReader fileReader = new FileReader(in);
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        int T = 0;
        String line;


        if ((line = bufferedReader.readLine()) != null) {

            String[] strs = line.trim().split("\\s+");
            T = Integer.parseInt(strs[0]);
        }


        int[][] var = new int[T][7];
        int i, j;


        for (i = 0; i < T; i++) {

            if ((line = bufferedReader.readLine()) != null) {

                String[] strs = line.trim().split("\\s+");
                for (j = 0; j < 7; j++) {
                    var[i][j] = Integer.parseInt(strs[j]);
                }
            }
        }

        PrintWriter writer = new PrintWriter(out);

        for (i = 0; i < T; i++) {

            int X = var[i][0];
            int Y = var[i][1];
            int Z = var[i][2];
            int A = var[i][3];
            int B = var[i][4];
            int C = var[i][5];
            int N = var[i][6];
            int[] dp = new int[N+1];
            dp[0] = X;
            dp[1] = Y;
            dp[2] = Z;

            for (j = 3; j <= N; j++) {
                dp[j] = ((dp[j-1]%MOD * A%MOD + dp[j-2]%MOD * B%MOD)%MOD + dp[j-3]%MOD * C%MOD)%MOD;
            }
            writer.println(dp[N]%MOD);
        }
        writer.close();
    }
}