Pagini recente » Cod sursa (job #510476) | Cod sursa (job #2046421) | Cod sursa (job #3290732) | Cod sursa (job #567497) | Cod sursa (job #2445539)
#include <bits/stdc++.h>
#define mod 666013
using namespace std;
void mult(int_fast64_t a[5][5], int_fast64_t b[5][5])
{
int_fast64_t c[5][5]= {0};
for (int i=0; i<3; ++i)
{
for (int j=0; j<3; ++j)
{
for (int k=0; k<3; ++k)
{
c[i][j]=(1ll*c[i][j]+1ll*a[i][k]*b[k][j])%mod;
}
}
}
for (int i=0; i<5; ++i)
{
for (int j=0; j<5; ++j)
{
a[i][j]=c[i][j];
}
}
}
int main()
{
ifstream fin ("iepuri.in");
ofstream fout("iepuri.out");
int q;
fin>>q;
while (q--)
{
int_fast64_t temp[5][5];
int_fast64_t x,y,z,a,b,c,zile;
fin>>x>>y>>z;
fin>>a>>b>>c;
fin>>zile;
int_fast64_t mat[5][5]= {{a,1,0},{b,0,1},{c,0,0}};
for (int i=0; i<3; ++i)
{
for (int j=0; j<3; ++j)
{
temp[i][j]=mat[i][j];
}
}
zile-=3;
while (zile)
{
if (zile%2==1)
{
mult(temp, mat);
}
mult(mat, mat);
zile/=2;
}
fout<<(z*temp[0][0]+y*temp[1][0]+x*temp[2][0])%mod<<"\n";
}
return 0;
}