Pagini recente » Cod sursa (job #2190512) | Cod sursa (job #2897336) | Cod sursa (job #1646529) | Cod sursa (job #362539) | Cod sursa (job #2608457)
#include <iostream>
#include <fstream>
#include <vector>
std::ifstream in("iepuri.in");
std::ofstream out("iepuri.out");
const int MOD=666013;
struct mat{
std::vector<std::vector<int> > m;
mat(std::vector<std::vector<int>>aux):m(aux){}
mat operator * (const mat & aux){
std::vector<std::vector<int>>rez;
for(int i=0;i<m.size();i++){
rez.push_back(std::vector<int>());
for(int j=0;j<aux.m[0].size();j++)
rez[i].push_back(0);
}
for(int i=0;i<m.size();i++)
for(int j=0;j<aux.m[0].size();j++)
for(int k=0;k<aux.m.size();k++)
rez[i][j]+=(1LL*m[i][k]*aux.m[k][j])%MOD,rez[i][j]%=MOD;
return rez;
}
mat(){}
};
mat rez,fib3,ma;
void lgPut(int k){
while(k){
if(k%2==1)
rez=rez*ma;
ma=ma*ma;
k/=2;
}
}
int main(){
int t;
in>>t;
for(int i=0;i<t;i++){
int x,y,z,a,b,c,n;
in>>x>>y>>z>>a>>b>>c>>n;
n-=2;
rez=mat({{1,0,0},{0,1,0},{0,0,1}});
fib3=mat({{z},{y},{x}});
ma=mat({{a,b,c},{1,0,0},{0,1,0}});
lgPut(n);
rez=rez*fib3;
out<<rez.m[0][0]<<'\n';
}
return 0;
}