Pagini recente » Cod sursa (job #404180) | Cod sursa (job #2151761) | Cod sursa (job #2763959) | Cod sursa (job #2599888) | Cod sursa (job #324242)
Cod sursa(job #324242)
#include<fstream>
#include <vector>
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
void inmult(long long a[4][4], long long b[4][4])
{
long long i,j,k;
long long c[4][4];
c[1][1]=c[1][2]=c[1][3]=0;
c[2][1]=c[2][2]=c[2][3]=0;
c[3][1]=c[3][2]=c[3][3]=0;
for (i=1;i<=3;++i)
for (j=1;j<=3;++j)
for (k=1;k<=3;++k)
c[i][j]=(c[i][j]+a[i][k]*b[k][j]%666013)%666013;
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
a[i][j]=c[i][j];
}
int main()
{
long long n;
long long a[4][4],b[4][4];
long long x,y,z;
long long t;
f>>t;
while (t>0)
{
t--;
f>>x>>y>>z>>a[3][3]>>a[3][2]>>a[3][1]>>n;
a[1][2]=1;
a[2][3]=1;
a[1][1]=a[1][3]=a[2][1]=a[2][2]=0;
b[1][1]=b[2][2]=b[3][3]=1;
b[1][2]=b[1][3]=b[2][1]=b[2][3]=b[3][1]=b[3][2]=0;
while (n>0)
{
if (n%2==1)
inmult(b,a);
inmult(a,a);
n=n/2;
}
x=((b[1][1]*x)%666013 + (b[1][2]*y)%666013 + (b[1][3]*z)%666013)%666013;
g<<x<<"\n";
}
}