Cod sursa(job #2589059)

Utilizator AlexgabyAlexandru Gabriel Rait Alexgaby Data 25 martie 2020 18:52:21
Problema Iepuri Scor 0
Compilator java Status done
Runda Arhiva de probleme Marime 1.97 kb
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static final int MOD = 666013;
    public static PrintStream out;

    public static void printResult(int result) {
        out.println(result);
    }

    public static int remainder(int number) {
        return (number % MOD);
    }

    public static void main(String[] args) throws FileNotFoundException {
        //long startTime = System.nanoTime();
        Scanner in = new Scanner(new File("iepuri.in"));
        out = new PrintStream(new File("iepuri.out"));
        int dataSetCount = in.nextInt();
        in.nextLine();
        for (; dataSetCount > 0; dataSetCount--) {
            String words[] = in.nextLine().split(" ", 7);
            List<Integer> v = new ArrayList<Integer>();
            v.add(Integer.parseInt(words[0]));
            v.add(Integer.parseInt(words[1]));
            v.add(Integer.parseInt(words[2]));
            int a = Integer.parseInt(words[3]);
            int b = Integer.parseInt(words[4]);
            int c = Integer.parseInt(words[5]);
            int n = Integer.parseInt(words[6]);
            if (n < 3)
                printResult(v.get(n));
            else
                for (int i = 3; ; i++) {
                    int x = remainder(a * v.get(2)) + remainder(b * v.get(1)) + remainder(c * v.get(0));
                    x = remainder(x);
                    if (i == n) {
                        printResult(x);
                        break;
                    }
                    v.remove(0);
                    v.add(x);
                }
        }
        //long endTime = System.nanoTime();
        //System.out.println("Timp total: " + ((endTime - startTime) / 1000000000d) + " secunde.");
        //System.out.println("Timp maxim infoarena: 0.05 secunde.");

    }
}