Cod sursa(job #3347257)

Utilizator leoebunLeonard Neacsa leoebun Data 15 martie 2026 21:48:03
Problema Iepuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <iostream>
#include <vector>
#include <fstream>
#define MOD 666013

using namespace std;

vector<vector<long long>> mult(vector<vector<long long>> &a, vector<vector<long long>> &b)
{
    vector<vector<long long>> dp(a.size(), vector<long long>(a[0].size(), 0));
    
    for (int i = 0 ; i < a.size(); i++) {
        for (int j = 0; j < a.size(); j++) {
            for (int k = 0; k < a.size(); k++) {
                dp[i][j] += a[i][k] * b[k][j];
                dp[i][j] %= MOD;
            }
        }
    }
    
    return dp;
}

int main()
{

    ifstream fin("iepuri.in");
    ofstream fout("iepuri.out");

    int t, x, y, z, a, b, c, n;
    fin >> t;


    for (int w = 0; w < t ; w++) {

        fin >> x >> y >> z >> a >> b >> c >> n;

        vector<vector<long long>> exp = {{0,0,c},{1,0,b},{0, 1, a}};
        vector<vector<long long>> res = {{1,0,0},{0,1,0},{0,0,1}};
        
        n -= 2;

        while(n > 0) {
            if (n & 1) {
                res = mult(res, exp); 
            }

            n >>= 1;
            exp = mult(exp, exp);
        }

        long long q = 0;

        q += x * res[0][2];
        q %= MOD;


        q += y * res[1][2];
        q %= MOD;


        q += z * res[2][2];
        q %= MOD;


        fout << q << "\n";
    }

    return 0;
}