Pagini recente » Cod sursa (job #1141235) | Cod sursa (job #1391049) | Cod sursa (job #1351713) | Cod sursa (job #1685620) | Cod sursa (job #1504420)
#include<stdio.h>
using namespace std;
#define MOD 666013
long long t,m[3][3],m2[3][3],result[3][3],v[3][3];
void power(long long A[3][3],long long B[3][3])
{
long long tmp[3][3];
for ( long long i = 0; i < 3; i++ )
{
for ( long long j = 0; j < 3; j++ )
{
tmp[i][j] = 0;
for ( long long k = 0; k < 3; k++ )
{
tmp[i][j] = (tmp[i][j] + 1LL * A[i][k] * B[k][j]) % MOD;
}
}
}
for(long long i=0; i<3; i++)
for(long long j=0; j<3; j++) A[i][j]=tmp[i][j];
}
int main()
{
freopen("iepuri.in","r",stdin);
//freopen("iepuri.out","w",stdout);
scanf("%lld",&t);
for(long long i=0; i<t; i++)
{
long long x,y,z,a,b,c,n;
scanf("%lld %lld %lld %lld %lld %lld %lld",&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;
for(long long i=0; i<3; i++)
for(long long j=0; j<3; j++) if(i==j) result[i][j]=1;
else result[i][j]=0;
n -= 2;
while(n)
{
if(n % 2)
{
power(result, m);
}
power(m, m);
n >>= 1;
}
printf("%lld\n",1LL * x * result[0][2] + 1LL * y * result[1][2] + 1LL * z * result[2][2]);
}
}