Pagini recente » Cod sursa (job #515866) | Cod sursa (job #1505705) | Cod sursa (job #1551676) | Cod sursa (job #673648) | Cod sursa (job #2492541)
#include <fstream>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
void initializare(long long a[4][4],int aa,int bb,int cc){
a[1][1]=aa;
a[1][2]=bb;
a[1][3]=cc;
a[2][1]=1;
a[3][2]=1;
a[2][2]=0;
a[2][3]=0;
a[3][1]=0;
a[3][3]=0;
}
void inmultire(long long a[4][4], long long b[4][4], long long c[4][4]){
for(int i=1;i<=3;i++){
for(int j=1;j<=3;j++){
c[i][j]=0;
for(int k=1;k<=3;k++){
c[i][j]+=a[i][k]*b[k][j];
c[i][j]%=666013;
}
}
}
}
void copiere(long long a[4][4], long long b[4][4]){
for(int i=1;i<=3;i++){
for(int j=1;j<=3;j++){
a[i][j]=b[i][j];
}
}
}
long long a[4][4],p[4][4],aux[4][4],n,x,y,z,aa,bb,cc,t;
int main(){
fin>>t;
for(int k=1;k<=t;k++){
fin>>x>>y>>z>>aa>>bb>>cc>>n;
n--;
initializare(a,aa,bb,cc);
initializare(p,aa,bb,cc);
while(n!=0){
if(n%2==1){
inmultire(a,p,aux);
copiere(p,aux);
}
inmultire(a,a,aux);
copiere(a,aux);
n=n/2;
}
fout<<((p[3][1]*z)%666013 + (p[3][2]*y)%666013 + (p[3][3]*x)%666013 )%666013<<"\n";
}
}