Pagini recente » Cod sursa (job #273274) | Cod sursa (job #313237) | Cod sursa (job #2375787) | Cod sursa (job #212362) | Cod sursa (job #2619013)
#include <bits/stdc++.h>
using namespace std;
int t,x1, x2, x3, a, b, c;
void prod(long long a1[4][4], int r) {
int i, j ,k, y, s1, s2;
long long mult[4][4], mult1[4][4];
for(i = 1; i <= 3; i++)
for(j = 1; j <= 3; j++)
{
mult[i][j]= a1[i][j];
}
for(i = 1; i <= 3; i++)
for(j = 1; j <= 3; j++)
{
mult1[i][j] = 0;
}
for( y =1; y <= r; y++) {
for( i = 1; i <= 3; i++)
{for( j = 1; j <= 3; j++)
{
mult1[i][j] = (a1[i][1]%666013) * ((mult[1][j])%666013);
mult1[i][j] = ((mult1[i][j]%666013) + (a1[i][2]%666013) * (mult[2][j]%666013)%666013)%666013;
mult1[i][j] = ((mult1[i][j]%666013) + (a1[i][3]%666013) * (mult[3][j]%666013)%666013)%666013;
}
}
for(s1 = 1; s1 <= 3; s1++)
for(s2 = 1; s2 <= 3; s2++)
{
mult[s1][s2]= mult1[s1][s2]%666013;
}
for(s1 = 1; s1 <= 3; s1++)
for(s2 = 1; s2 <= 3; s2++)
{
mult1[s1][s2] = 0;
}
}
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++) {
a1[i][j] = mult[i][j]%666013;
}
}
}
int main() {
freopen("iepuri.in", "r", stdin);
freopen("iepuri.out", "w", stdout);
scanf("%d",&t);
int r, r1, i,j;
long long mult[4][4], a1[4][4];
int y;
for(int y = 1; y <= t;y++) {
scanf("%d %d %d %d %d %d %d", &x1, &x2, &x3, &a, &b, &c, &r);
for(i = 1; i <= 3; ++i)
for(j = 1; j <= 3; ++j)
{
mult[i][j]=0;
}
for(i = 1; i <= 3; ++i)
for(j = 1; j <= 3; ++j)
{
a1[i][j]=0;
}
a1[1][1] = a;
a1[1][2] = b;
a1[1][3] = c;
a1[2][1] = 1;
a1[3][2] = 1;
prod(a1,r-3);
int t1;
t1 = (a1[1][1]*x3)%666013;
t1 = (t1 + (a1[1][2]*x2)%666013)%666013;
t1 = (t1 + (a1[1][3]*x1)%666013)%666013;
printf("%d\n",t1);
}
return 0;
}