Pagini recente » Cod sursa (job #817873) | Cod sursa (job #1894875) | Cod sursa (job #1740385) | Cod sursa (job #406115) | Cod sursa (job #1735371)
# include <fstream>
# define MOD 666013
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
int n,c,d,e,x,y,z,nr,p;
void copiere(long long a[3][3],long long b[3][3]){
for(int i=0;i<=2;i++)
for(int j=0;j<=2;j++)
a[i][j]=b[i][j];
}
void inmultire(long long a[3][3],long long b[3][3],long long c[3][3]){
for(int i=0;i<=2;i++)
for(int j=0;j<=2;j++){
c[i][j]=0;
for(int k=0;k<=2;k++){
c[i][j]+=a[i][k]*b[k][j];
c[i][j]%=MOD;
}
}
}
int main () {
fin>>nr;
for(p=1;p<=nr;p++){
fin>>c>>d>>e>>x>>y>>z>>n;
if(n==0){
fout<<x<<"\n";
return 0;
}
if(n==1){
fout<<y<<"\n";
return 0;
}
if(n==2){
fout<<z<<"\n";
return 0;
}
long long a[3][3]={{c,d,e},{1,0,0},{0,1,0}};
long long b[3][3];
long long k[3][3]={{1,0,0},{0,1,0},{0,0,1}};
n-=2;
while(n){
if(n&1){
inmultire(k,a,b);
copiere(k,b);
}
inmultire(a,a,b);
copiere(a,b);
n/=2;
}
fout<<(k[0][0]*z+k[0][1]*y+k[0][2]*x)%MOD<<"\n";
}
return 0;
}