Pagini recente » Cod sursa (job #2098626) | Cod sursa (job #2839961) | Cod sursa (job #705947) | Cod sursa (job #2119292) | Cod sursa (job #2544923)
#include <bits/stdc++.h>
#define MAX 3
#define MOD 666013
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
struct matrix
{
int values[MAX][MAX];
matrix()
{
memset(values,0,sizeof(values));
}
};
inline matrix operator*(matrix a,matrix b)
{
int i,j,k;
matrix ans;
for(i=0;i<MAX;i++)
for(j=0;j<MAX;j++)
for(k=0;k<MAX;k++)
ans.values[i][j]=(ans.values[i][j]+1LL*a.values[i][k]*b.values[k][j])%MOD;
return ans;
}
int x,y,z,a,b,c,n,t;
int main()
{
int p,h;
matrix sol,m;
fin>>t;
for(h=1;h<=t;h++)
{
matrix sol,m;
fin>>x>>y>>z>>a>>b>>c>>n;
m.values[0][0]=a;
m.values[0][1]=b;
m.values[0][2]=c;
m.values[1][0]=1;
m.values[2][1]=1;
sol.values[0][0]=sol.values[1][1]=sol.values[2][2]=1;
p=n-2;
while(p>0)
{
if(p%2==1)
sol=sol*m;
p/=2;
m=m*m;
}
matrix vect;
vect.values[0][0]=z;
vect.values[1][0]=y;
vect.values[2][0]=x;
sol=sol*vect;
fout<<sol.values[0][0]<<'\n';
}
return 0;
}