Pagini recente » Cod sursa (job #2905116) | Cod sursa (job #2547102) | Cod sursa (job #2876903) | Cod sursa (job #2345122) | Cod sursa (job #1959450)
#include <fstream>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
typedef long long i64;
const int mod=666013;
i64 v[3], v2[3], m[3][3], m2[3][3], m3[3][3];
int main () {
int q;
fin>>q;
for (int i=1; i<=q; i++) {
int x, y, z, a, b, c, n;
fin>>x>>y>>z>>a>>b>>c>>n;
m[0][0]=0; m[0][1]=0; m[0][2]=c;
m[1][0]=1; m[1][1]=0; m[1][2]=b;
m[2][0]=0; m[2][1]=1; m[2][2]=a;
v[0]=x;
v[1]=y;
v[2]=z;
m2[0][0]=1; m2[0][1]=0; m2[0][2]=0;
m2[1][0]=0; m2[1][1]=1; m2[1][2]=0;
m2[2][0]=0; m2[2][1]=0; m2[2][2]=1;
for (int j=1; j<=n-2; j*=2) {
if (((n-2)&j)!=0) {
for (int k=0; k<3; k++) {
for (int l=0; l<3; l++) {
m3[k][l]=0;
for (int p=0; p<3; p++) {
m3[k][l]+=m2[k][p]*m[p][l];
}
}
}
for (int k=0; k<3; k++) {
for (int l=0; l<3; l++) {
m2[k][l]=m3[k][l]%mod;
}
}
}
for (int k=0; k<3; k++) {
for (int l=0; l<3; l++) {
m3[k][l]=0;
for (int p=0; p<3; p++) {
m3[k][l]+=m[k][p]*m[p][l];
}
}
}
for (int k=0; k<3; k++) {
for (int l=0; l<3; l++) {
m[k][l]=m3[k][l]%mod;
}
}
}
for (int j=0; j<3; j++) {
v2[j]=0;
for (int k=0; k<3; k++) {
v2[j]+=v[k]*m2[k][j];
}
}
fout<<v2[2]%mod<<"\n";
}
return 0;
}