Pagini recente » Cod sursa (job #436607) | Cod sursa (job #2446807) | Cod sursa (job #3198609) | Cod sursa (job #2455214) | Cod sursa (job #3167180)
#include <fstream>
#define mod 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
long long a[4][4],b[4][4],c[4][4];
long long n,m,A,B,C,x,y,z;
void mull(long long q[4][4],long long w[4][4])
{
long long aux[4][4];
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
{
long long s=0;
for(int k=1;k<=3;k++)
{
s=(s+(q[i][k]*w[k][j])%mod)%mod;
aux[i][j]=s;
}
}
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
q[i][j]=aux[i][j];
}
void exp_mat()
{
while(n)
{
if(n%2==1)
mull(a,b);
mull(b,b);
n/=2;
}
}
void solve()
{
f>>x>>y>>z>>A>>B>>C>>n;
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
b[i][j]=0;
b[1][1]=A;
b[1][2]=B;
b[1][3]=C;
b[2][1]=1;
b[3][2]=1;
if(n==0)
g<<x;
else if(n==1)
g<<y;
else if(n==2)
g<<z;
else
{
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
a[i][j]=0;
a[1][1]=a[2][2]=a[3][3]=1;
n-=2;
exp_mat();
g<<a[1][1]*z+a[2][1]*y+a[3][1]*x<<'\n';
}
}
int main()
{
long long test;
f>>test;
while(test--)
solve();
return 0;
}