Pagini recente » Cod sursa (job #2368098) | Cod sursa (job #1691254) | Cod sursa (job #1781265) | Cod sursa (job #971370) | Cod sursa (job #837159)
Cod sursa(job #837159)
#include<fstream>
#include<string>
#define MOD 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
long long p[3][3];
long long s,v,x[3],a,b,c,n;
long long A[3][3],temb[3][3],sol[3][3];
int i;
void multiply(long long a[3][3],long long b[3][3],long long c[3][3])
{
int i,j,k;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
c[i][j]=0;
for(k=0;k<3;k++)
{
c[i][j]+=a[i][k]*b[k][j]%MOD;
//if(c[i][j]>=MOD)
//c[i][j]-=MOD;
c[i][j]%=MOD;
}
}
}
}
int main(){
f>>v;
p[0][0]=p[1][1]=p[2][2]=1;
while(v)
{
f>>x[2]>>x[1]>>x[0]>>a>>b>>c>>n;
A[1][1]=A[1][2]=A[2][0]=A[2][2]=0;
A[1][0]=A[2][1]=1;
A[0][0]=a;A[0][1]=b;A[0][2]=c;
n-=2;
memcpy(sol,p,sizeof(sol));
while(n!=0){
if(n%2){
multiply(sol,A,temb);
memcpy(sol,temb,sizeof(sol));
}
multiply(A,A,temb);
memcpy(A,temb,sizeof(A));
n/=2;
}
s=0;
for(i=0;i<3;i++){
s+=(sol[0][i]*x[i])%MOD;
s%=MOD;
}
g<<s<<'\n';
v--;
}
return 0;
}