Pagini recente » Cod sursa (job #3209213) | Cod sursa (job #2632873) | Cod sursa (job #2867478) | Cod sursa (job #1828553) | Cod sursa (job #3167174)
#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++)
{
int s=0;
for(int k=1;k<=3;k++)
{
s=(s+(w[k][j]*q[i][k])%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()
{
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
a[i][j]=b[i][j];
while(n!=1)
{
if(n%2==1)
{
mull(b,b);
n/=2;
mull(b,a);
}
else if(n!=0)
{
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[2][1]=B;
b[3][1]=C;
b[1][2]=1;
b[2][3]=1;
if(n==0)
g<<x;
else if(n==1)
g<<y;
else if(n==2)
g<<z;
else
{
n-=2;
exp_mat();
g<<b[1][1]*z+b[2][1]*y+b[3][1]*x<<'\n';
}
}
int main()
{
long long test;
f>>test;
while(test--)
solve();
return 0;
}