Pagini recente » Cod sursa (job #2081567) | Autentificare | Cod sursa (job #2753695) | Cod sursa (job #591569) | Cod sursa (job #2006750)
#include<fstream>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
long long sol,n,A,B,C,x,y,z,i,t;
long long a[3][3],b[3][3],c[3][3];
void inmultire(long long d[3][3],long long f[3][3],long long g[3][3]){
for(int i=0;i<=2;i++){
for(int j=0;j<=2;j++){
g[i][j]=0;
for (int q=0;q<=2;q++){
g[i][j]+=d[i][q]*f[q][j];
g[i][j]%=666013;
}
}
}
}
void copiere(long long d[3][3],long long g[3][3]){
for(int i=0;i<=2;i++){
for(int j=0;j<=2;j++){
d[i][j]=g[i][j];
}
}
}
int main(){
fin>>t;
for(i=1;i<=t;i++){
fin>>x>>y>>z>>A>>B>>C>>n;
a[0][0]=A;
a[0][1]=B;
a[0][2]=C;
a[1][0]=1;
a[1][1]=0;
a[1][2]=0;
a[2][0]=0;
a[2][1]=1;
a[2][2]=0;
b[0][0]=1;
b[0][1]=0;
b[0][2]=0;
b[1][0]=0;
b[1][1]=1;
b[1][2]=0;
b[2][0]=0;
b[2][1]=0;
b[2][2]=1;
n-=2;
while(n>=1){
if(n%2==1){
inmultire(a,b,c);
copiere(b,c);
}
inmultire(a,a,c);
copiere(a,c);
n/=2;
}
sol=0;
sol+=b[0][0]*z;
sol%=666013;
sol+=b[0][1]*y;
sol%=666013;
sol+=b[0][2]*x;
sol%=666013;
fout<<sol<<"\n";
}
return 0;
}