Nu aveti permisiuni pentru a descarca fisierul grader_test38.in
Cod sursa(job #3222068)
Utilizator | Data | 8 aprilie 2024 23:01:07 | |
---|---|---|---|
Problema | Iepuri | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 1.55 kb |
#include <bits/stdc++.h>
using namespace std;
const int inf = 10;
int s[3];
int A,B,C;
const int MOD = 666013;
int n;
struct Matrix{
int size;
vector<vector<int>> v;
Matrix(int _size) : size(_size){
v = vector<vector<int>>(size, vector<int>(size));
for(int i=0;i<size;i++) v[i][i] = 1;
}
Matrix(int _size,vector<vector<int>> _v) : size(_size){
v = vector<vector<int>>(size, vector<int>(size));
for(int i=0;i<size;i++)
for(int j=0;j<size;j++)
v[i][j] = _v[i][j];
}
Matrix(int _size, int val) : size(_size){
v = vector<vector<int>>(size, vector<int>(size));
for(int i=0;i<size;i++)
for(int j=0;j<size;j++)
v[i][j] = val;
}
Matrix operator * (const Matrix &other){
Matrix ans(size,0);
for(int i=0;i<size;i++)
for(int j=0;j<size;j++)
for(int k=0;k<size;k++)
ans.v[i][j] = (ans.v[i][j] + this->v[i][k] * other.v[k][j])%MOD;
return ans;
}
};
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
#define cin fin
#define cout fout
int main(){
int t;
cin>>t;
while(t--){
cin>>s[0]>>s[1]>>s[2];
cin>>A>>B>>C;
cin>>n;
Matrix a(3,{{0,1,0},{0,0,1},{C,B,A}}), ans(3);
while(n){
if(n&1) ans = ans * a;
a = a * a;
n>>=1;
}
int answer = 0;
for(int i=0;i<3;i++)
answer = (answer + s[i] * ans.v[0][i])%MOD;
cout<<answer<<'\n';
}
return 0;
}